<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>LETTUCE-EATER &#187; javascript</title>
	<atom:link href="http://lettuce-eater.com/blog/archives/category/javascript/feed" rel="self" type="application/rss+xml" />
	<link>http://lettuce-eater.com/blog</link>
	<description>レタス好きWEBデザイナーのログ</description>
	<lastBuildDate>Wed, 14 Sep 2016 10:54:24 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>https://wordpress.org/?v=4.1.41</generator>
	<item>
		<title>SNSに投稿する文字列をURIエンコードしたときのメモ</title>
		<link>http://lettuce-eater.com/blog/archives/364</link>
		<comments>http://lettuce-eater.com/blog/archives/364#comments</comments>
		<pubDate>Wed, 14 Sep 2016 10:54:24 +0000</pubDate>
		<dc:creator><![CDATA[moroto]]></dc:creator>
				<category><![CDATA[javascript]]></category>
		<category><![CDATA[SNS]]></category>

		<guid isPermaLink="false">http://lettuce-eater.com/blog/?p=364</guid>
		<description><![CDATA[オリジナルのボタンで各種SNSに投稿する際、付与する日本語テキストを含む情報をURIエンコードしたときに少しハマったときのメモです。 結果からいうとencodeURIComponentをかける範囲によ...]]></description>
				<content:encoded><![CDATA[<figure><img src="http://lettuce-eater.com/blog/wp-content/uploads/2016/09/201609uri.jpg" alt="201609uri" width="1280" height="512" class="aligncenter size-full wp-image-384" /></figure>
<div class="lead">オリジナルのボタンで各種SNSに投稿する際、付与する日本語テキストを含む情報をURIエンコードしたときに少しハマったときのメモです。</div>
<p><span id="more-364"></span><br />
結果からいうとencodeURIComponentをかける範囲によって挙動不審な動きをしてしまったという。</p>
<h2>失敗例</h2>
<p>まずは共通のhtmlとしてボタンを設置します。<br />
今回はFacebook、Twitterと最近増えてるLINEのボタンを。</p>
<pre class="brush: xml; title: ; notranslate">
&lt;div id=&quot;sns-area&quot;&gt;
&lt;a class=&quot;Facebook&quot; href=&quot;#&quot; target=&quot;_blank&quot;&gt;シェア&lt;/i&gt;&lt;/a&gt;
&lt;a class=&quot;Twitter&quot; href=&quot;#&quot; target=&quot;_blank&quot;&gt;ツイートする&lt;/a&gt;
&lt;a class=&quot;Line&quot; href=&quot;#&quot; target=&quot;_blank&quot;&gt;LINEで送る&lt;/a&gt;
&lt;/div&gt;
</pre>
<p>そしてすぐ後などにjavascriptを記述します。</p>
<pre class="brush: jscript; title: ; notranslate">
&lt;script&gt;
var text = encodeURIComponent(&quot;SNSに投稿する文字列をURIエンコードしたときのメモ)&quot;);
var pageurl = &quot;http://lettuce-eater.com/blog/?p=364&quot;;
var Facebook_url = encodeURIComponent(&quot;http://www.facebook.com/sharer.php?u=&quot; + pageurl + &quot;&amp;t=&quot; + text);
var Twitter_url = encodeURIComponent(&quot;http://twitter.com/share?text=&quot; + text + &quot;&amp;url=&quot; + pageurl);
var Line_url = encodeURIComponent(&quot;http://line.me/R/msg/text/?&quot; + text + &quot; &quot; + pageurl);
$('.Facebook').attr('href', Facebook_url);
$('.Twitter').attr('href', Twitter_url);
$('.Line').attr('href', Line_url);
&lt;/script&gt;
</pre>
<p><a title="URIエンコード失敗例のDEMO" href="http://lettuce-eater.com/blog/wp-content/uploads/2016/09/uri_demo1.html" rel="shadowbox;width=400;height=400">→失敗例のDEMO</a></p>
<p>テキストとページのURLを用意し、各共有用のURLにくっつけたものを encodeURIComponent でURIエンコードして準備完了。<br />
jQueryでaタグのhref属性に入れたら完了、のはずでした。</p>
<p>開発者ツールとかで書き換えられたhref属性を見てみても正しくエンコードされたURLが記述されているのに、クリックするとこのページのURLが頭に差し込まれてわけのわからないアドレスになりNot Foundに。</p>
<h2>成功例</h2>
<p>先ほどのjavascript部分を修正します。</p>
<pre class="brush: jscript; title: ; notranslate">
&lt;script&gt;
var text = encodeURIComponent(&quot;SNSに投稿する文字列をURIエンコードしたときのメモ&quot;);
var pageurl = &quot;http://lettuce-eater.com/blog/?p=364&quot;;
$('.Facebook').attr('href',(&quot;http://www.facebook.com/sharer.php?u=&quot; + pageurl + &quot;&amp;t=&quot; + text));
$('.Twitter').attr('href', (&quot;http://twitter.com/share?text=&quot; + text + &quot;&amp;url=&quot; + pageurl));
$('.Line').attr('href', (&quot;http://line.me/R/msg/text/?&quot; + text + &quot; &quot; + pageurl));
&lt;/script&gt;
</pre>
<p><a title="URIエンコード成功例のDEMO" href="http://lettuce-eater.com/blog/wp-content/uploads/2016/09/uri_demo2.html" rel="shadowbox;width=400;height=400">→成功例のDEMO</a></p>
<p>変更点としては入込み前の完成文言にencodeURIComponentをかけるのではなく、日本語の部分にのみ先にencodeURIComponentをかけたところです。</p>
<p>詳しい人はすんなりわかりそうですがハマってしまった自分としてはBLOGネタとしてメモでした。</p>
]]></content:encoded>
			<wfw:commentRss>http://lettuce-eater.com/blog/archives/364/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>jQueryでスライダーをスワイプ</title>
		<link>http://lettuce-eater.com/blog/archives/147</link>
		<comments>http://lettuce-eater.com/blog/archives/147#comments</comments>
		<pubDate>Fri, 24 Aug 2012 11:43:21 +0000</pubDate>
		<dc:creator><![CDATA[moroto]]></dc:creator>
				<category><![CDATA[javascript]]></category>
		<category><![CDATA[jQuery]]></category>

		<guid isPermaLink="false">http://lettuce-eater.com/blog/?p=147</guid>
		<description><![CDATA[jQueryプラグインで実装できるスライダーにスワイプ機能（スマホ対応）の追加をしました。 利用したのは下記プラグイン jQuery Slider2 スライダー機能を実装します。実際動いているスライダ...]]></description>
				<content:encoded><![CDATA[<p>jQueryプラグインで実装できるスライダーにスワイプ機能（スマホ対応）の追加をしました。</p>
<p><span id="more-147"></span></p>
<p>利用したのは下記プラグイン<br />
<a href="http://wex.im/jquery-slider2" title="jQuery scroll parallax plugin " target="_blank">jQuery Slider2</a><br />
スライダー機能を実装します。実際動いているスライダー内の download ボタンからダウンロード。<br />
<a href="http://labs.skinkers.com/touchSwipe/" title="jQuery scroll parallax plugin " target="_blank">TouchSwipe</a><br />
スワイプ機能の実装。Latest TouchSwipe on github download からダウンロード。 </p>
<p>【html header】<br />
jquery本体と、DLした3つのcssとjsを読み込みます。</p>
<pre class="brush: xml; title: ; notranslate">
&lt;link rel=&quot;stylesheet&quot; href=&quot;jquery.slider.css&quot;&gt;
&lt;script type=&quot;text/javascript&quot; src=&quot;jquery-1.8.0.min.js&quot;&gt;&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot; src=&quot;jquery.slider.min.js&quot;&gt;&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot; src=&quot;jquery.touchSwipe.min.js&quot;&gt;&lt;/script&gt;
</pre>
<p>jQuery Sliderの設定</p>
<pre class="brush: xml; title: ; notranslate">
&lt;script type=&quot;text/javascript&quot;&gt;
$(function(){
	$('#slideArea').slider({    　//コンテンツを内包する要素の設定
		autoplay: true,     　//自動再生
		showPosition: true, 　//現在の表示
		hoverPause: true,   　//マウスオーバーで停止
		wait: 3000,         　//停止時間
		fade: 500,          　//スライド時間
		direction: &quot;left&quot;   　//スライド方向
	});
});
&lt;/script&gt;
</pre>
<p>【javascript】<br />
ここで、スワイプするとスライダーが動くように先ほど読み込んだ jquery.slider.min.js に記述を追加します。<br />
インデントが削除してあって見づらいですが、コード最後のほうにある ”_init();” で改行して下記4行を記述します。</p>
<pre class="brush: xml; title: ; notranslate">
～～～～_init();
//スワイプ用ここから
$(this).swipe({
	swipeLeft:function(eventfingerCount){_next();},  //左にスワイプ
	swipeRight:function(eventfingerCount){_prev();}  //右にスワイプ
});
//スワイプ用ここまで
};})(jQuery);
</pre>
<p>【html body】<br />
slideAreaを設定した中にコンテンツを記述します。</p>
<pre class="brush: xml; title: ; notranslate">
&lt;div id=&quot;slideArea&quot;&gt;
	&lt;div class=&quot;item&quot;&gt;
		&lt;h3 class=&quot;title&quot;&gt;SLIDE1&lt;/h3&gt;
		&lt;div&gt;&lt;img src=&quot;image1.jpg&quot;&gt;&lt;/div&gt;
	&lt;/div&gt;
	&lt;div class=&quot;item&quot;&gt;
		&lt;h3 class=&quot;title&quot;&gt;SLIDE2&lt;/h3&gt;
		&lt;div&gt;&lt;img src=&quot;image2.jpg&quot;&gt;&lt;/div&gt;
	&lt;/div&gt;
	&lt;div class=&quot;item&quot;&gt;
		&lt;h3 class=&quot;title&quot;&gt;SLIDE3&lt;/h3&gt;
		&lt;div&gt;&lt;img src=&quot;image3.jpg&quot;&gt;&lt;/div&gt;
	&lt;/div&gt;
&lt;/div&gt;
</pre>
<p>これで、PCでもスマホでもスワイプしてスライダーの制御ができます。</p>
<p><a title="jQueryでスライドとスワイプ" href="http://lettuce-eater.com/blog/wp-content/uploads/2012/08/slide_swipe/index.html" rel="shadowbox;width=420;height=510">→DEMO</a></p>
<p>下記サイト様のサンプル等を参考にさせて頂きました。<br />
<a href="http://www.skuare.net/2011/06/javascriptdivjquery_slider2.html" title="JavaScriptでdiv要素をさくっとスライド!「jQuery Slider2」" target="_blank">JavaScriptでdiv要素をさくっとスライド!「jQuery Slider2」</a><br />
<a href="http://tokyo.supersoftware.co.jp/tech/2011/03/070246.html" title="「TouchSwipe」スワイプイベント実装用のjQueryプラグイン" target="_blank">「TouchSwipe」スワイプイベント実装用のjQueryプラグイン</a></p>
]]></content:encoded>
			<wfw:commentRss>http://lettuce-eater.com/blog/archives/147/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>jQuery scroll parallax pluginを使ってみた</title>
		<link>http://lettuce-eater.com/blog/archives/118</link>
		<comments>http://lettuce-eater.com/blog/archives/118#comments</comments>
		<pubDate>Thu, 31 May 2012 15:24:24 +0000</pubDate>
		<dc:creator><![CDATA[moroto]]></dc:creator>
				<category><![CDATA[javascript]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[parallax]]></category>

		<guid isPermaLink="false">http://lettuce-eater.com/blog/?p=118</guid>
		<description><![CDATA[最近もちらほら見るパララックス効果を実装できるjQuery scroll parallax pluginを触ってみました。 下記サイトのDownload the plugin from githubか...]]></description>
				<content:encoded><![CDATA[<p>最近もちらほら見るパララックス効果を実装できるjQuery scroll parallax pluginを触ってみました。</p>
<p><span id="more-118"></span></p>
<p>下記サイトのDownload the plugin from githubからプラグイン一式をダウンロード<br />
<a href="http://www.davecranwell.com/content/jquery-scroll-parallax-plugin" title="jQuery scroll parallax plugin " target="_blank">jQuery scroll parallax plugin</a></p>
<p>基本、サンプルを踏襲しつつ進めていきます。</p>
<p><a title="jQuery scroll parallax pluginを使ってみたDEMO1" href="http://lettuce-eater.com/blog/wp-content/uploads/2012/05/parallax_study/test1.html" rel="shadowbox;">→DEMO1</a></p>
<p>【html header内】<br />
以下3つのjsを読み込みます。</p>
<pre class="brush: xml; title: ; notranslate">
&lt;script src=&quot;js/jquery-1.7.2.min.js&quot;&gt;&lt;/script&gt;
&lt;script src=&quot;js/jquery.inview.min.js&quot;&gt;&lt;/script&gt;
&lt;script src=&quot;js/jquery.scrollParallax.min.js&quot;&gt;&lt;/script&gt;
</pre>
<pre class="brush: xml; title: ; notranslate">
&lt;script type=&quot;text/javascript&quot;&gt;
$(function(){
	$('.s_02').scrollParallax({'speed': -0.2});
	：
	$('.s02').scrollParallax({'speed': 0.2});
	：
});
&lt;/script&gt;
</pre>
<p>サンプルでは各要素に個別にスピードの設定をしてありましたが、<br />
ここではスピード用のクラスごとにscrollParallaxのスピードを設定して使用しています。</p>
<p>【html body内】</p>
<pre class="brush: xml; title: ; notranslate">
&lt;ul class=&quot;items&quot;&gt;
	&lt;li class=&quot;item item1 s_02&quot;&gt;
		&lt;div class=&quot;inner inner1_1 s_06&quot;&gt;&lt;/div&gt;
		&lt;div class=&quot;inner inner1_2 s_14&quot;&gt;&lt;/div&gt;
		&lt;div class=&quot;inner inner1_3 s_20&quot;&gt;&lt;/div&gt;
		&lt;div class=&quot;content&quot;&gt;テキストコンテンツエリア1&lt;br&gt;ダミー画像&lt;/div&gt;
	&lt;/li&gt;
	&lt;li class=&quot;item item2 s_02&quot;&gt;
		&lt;div class=&quot;inner inner2_1 s02&quot;&gt;&lt;/div&gt;
		&lt;div class=&quot;inner inner2_2 s04&quot;&gt;&lt;/div&gt;
		&lt;div class=&quot;inner inner2_3 s06&quot;&gt;&lt;/div&gt;
		&lt;div class=&quot;content&quot;&gt;テキストコンテンツエリア2&lt;br&gt;雲&lt;/div&gt;
	&lt;/li&gt;
	&lt;li class=&quot;item item3 s_02&quot;&gt;
		&lt;div class=&quot;inner inner3_1 s_04&quot;&gt;&lt;/div&gt;
		&lt;div class=&quot;inner inner3_2 s_02&quot;&gt;&lt;/div&gt;
		&lt;div class=&quot;inner inner3_3 s_08&quot;&gt;&lt;/div&gt;
		&lt;div class=&quot;content&quot;&gt;テキストコンテンツエリア3&lt;br&gt;泡&lt;/div&gt;
	&lt;/li&gt;
&lt;/ul&gt;
</pre>
<p>【css内】</p>
<pre class="brush: css; title: ; notranslate">
.item1{background: black url(http://dummyimage.com/1024x768/1576bd/2a88ce.jpg&amp;text=背景画像) 0px 0px fixed no-repeat;}
.inner1_1{background: url(http://dummyimage.com/200x200/bbb/ccc.jpg&amp;text=innerimage1) 400px 200px fixed no-repeat;}
:
</pre>
<p>( li .item ) 1ブロックごと<br />
( li .item+数字 ) cssで背景画像を指定<br />
( li .inner ) 各小さいアイテム<br />
( li .inner+数字 ) 各小さいアイテムにcssで背景画像と基本表示位置を指定</p>
<p><a title="jQuery scroll parallax pluginを使ってみたDEMO1" href="http://lettuce-eater.com/blog/wp-content/uploads/2012/05/parallax_study/test1.html" rel="shadowbox;">→DEMO1</a></p>
<p style="background:#eeeeee"><strong>【応用】以下はページ内リンクとスクロールのイージング追加版です</p>
<p>下記サイト様のサンプル等を参考にさせて頂きました。<br />
<a href="http://klutche.org/archives/536/" title="ページ内リンクをするするーっとスムースにスクロールするJavascript" target="_blank">ページ内リンクをするするーっとスムースにスクロールするJavascript</a><br />
<a href="http://www.webopixel.net/javascript/435.html" title="jQueryでマウスホイールすると余韻が残るイージングスクロールをつくる | webOpixel" target="_blank">jQueryでマウスホイールすると余韻が残るイージングスクロールをつくる | webOpixel</a></p>
<p>【html header内】<br />
マウスホイール感知、イージング用のjsを追加</p>
<pre class="brush: xml; title: ; notranslate">
&lt;script src=&quot;js/jquery.mousewheel.js&quot;&gt;&lt;/script&gt;
&lt;script src=&quot;js/jquery.easie.js&quot;&gt;&lt;/script&gt;
</pre>
<p>jQuery function内に下記を追加</p>
<pre class="brush: jscript; title: ; notranslate">
&lt;script type=&quot;text/javascript&quot;&gt;
    $(function(){
	/* page's scroll */
	$('a[href^=#]').click(function() {
        var speed = 1000;
        var href= $(this).attr(&quot;href&quot;);
        var target = $(href == &quot;#&quot; || href == &quot;&quot; ? 'html' : href);
        var position = target.offset().top;
        $($.browser.safari ? 'body' : 'html').animate({scrollTop:position}, speed, 'swing');
        return false;
    });
    
    /* mousewheel easing */
	var scrolly = 0;
	var speed = 100;
	$('html').mousewheel(function(event, mov) {
		if(jQuery.browser.webkit){
			if (mov &gt; 0) scrolly =  $('body').scrollTop() - speed;
			else if (mov &lt; 0) scrolly =  $('body').scrollTop() + speed;
		} else {
			if (mov &gt; 0) scrolly =  $('html').scrollTop() - speed;
			else if (mov &lt; 0) scrolly =  $('html').scrollTop() + speed;
		}
		$('html,body')
			.stop()
			.animate({scrollTop: scrolly}, 'slow',$.easie(0,0,0,1));
			//イージングプラグイン使わない場合
			//.animate({ scrollTop: scrolly }, 'normal');
		return false;
	});
&lt;/script&gt;
</pre>
<p><a title="jQuery scroll parallax pluginを使ってみたDEMO2" href="http://lettuce-eater.com/blog/wp-content/uploads/2012/05/parallax_study/test2.html" rel="shadowbox;">→DEMO2</a></p>
<p>このプラグインは基本cssで背景に画像を設定して動かすので、要素内に入れた画像等は動かないみたい。<br />
背景と、各シーンのコンテンツという割とシンプルな構成に使うぽい。</p>
<p>ちなみに、背景画像等で使っていたのはURLだけでダミー画像を作ってくれるサービスです。<br />
<a href="http://dummyimage.com" title="Dynamic Dummy Image Generator" target="_blank">Dynamic Dummy Image Generator</a></p>
<pre class="brush: xml; title: ; notranslate">

http://dummyimage.com/1024x768/333333/cccccc.jpg&#038;text=ダミー画像

</pre>
<p>http://dummyimage.com/横サイズx縦サイズ/背景色/文字色.拡張子&#038;text=テキスト</p>
]]></content:encoded>
			<wfw:commentRss>http://lettuce-eater.com/blog/archives/118/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
