<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
<channel>
<title><![CDATA[小小工程師的日常筆記]]></title> 
<link>https://xdeath.tw/index.php</link> 
<description><![CDATA[]]></description> 
<language>zh-tw</language> 
<copyright><![CDATA[小小工程師的日常筆記]]></copyright>
<item>
<link>https://xdeath.tw/read.php?29</link>
<title><![CDATA[jquery 重複修改CSS、value(更動畫面)]]></title> 
<author>admin &lt;tszheng@twnic.net.tw&gt;</author>
<category><![CDATA[javascript]]></category>
<pubDate>Mon, 27 Apr 2015 08:36:32 +0000</pubDate> 
<guid>https://xdeath.tw/read.php?29</guid> 
<description>
<![CDATA[ 
	今天在寫一個亂數跳號的抽籤器，原本以為挺簡單<br/><br/>按下按紐後間隔200ms連續產生亂數，然後改變中籤的顏色<br/><br/>沒想到怎麼做都做不出來，後來發現javascript是一種單執行緒的語言<br/><br/>所以原本我的邏輯是&nbsp;&nbsp;迴圈 &#123;按下按鈕->等200ms->亂數換色&#125;<br/><br/>產生結果卻是 等n次200ms，最後換色(因為ui會取最後的結果顯示)<br/><br/>有寫過java的ui應該都清楚，背後邏輯在運作的時候要改變UI狀態<br/><br/>就必須要另外拉一條thread同時做，這樣才可以同時計算邏輯與改變UI<br/><br/>因此javascript的function就必須要使用?完整執行完整個邏輯同時包含改變UI?<br/><br/>也就是查詢後必須用setTimeout去重複執行自己，而不能function中等待n秒再重複執行某動作<br/><br/>程式碼如下<br/><br/><div class="code"><br/>var flag = 0;<br/>function start(total)<br/>&#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;var i = Math.floor((Math.random() * total)); <br/>&nbsp;&nbsp;&nbsp;&nbsp;for(var j = 0;j &lt; total;j++)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$(&quot;#&quot; + j).css(&#039;background-color&#039;,&#039;white&#039;);<br/>&nbsp;&nbsp;&nbsp;&nbsp;$(&quot;#&quot; + i).css(&#039;background-color&#039;,&#039;yellow&#039;);<br/>&nbsp;&nbsp;&nbsp;&nbsp;if(flag %2 == 1)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;setTimeout(&quot;start(&quot;+total+&quot;)&quot;, 30);&nbsp;&nbsp;&nbsp;&nbsp; &lt;---重複執行自己<br/>&nbsp;&nbsp;&nbsp;&nbsp;else<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#123;$(&quot;#button&quot;).attr(&quot;disabled&quot;,true);&#125;<br/>&#125;<br/></div><br/><br/>最後加個停止的條件判斷，就可以成功達成任務了
]]>
</description>
</item><item>
<link>https://xdeath.tw/read.php?27</link>
<title><![CDATA[jquery產生facebook捲軸拉到底部自動新增資料效果(二)]]></title> 
<author>admin &lt;tszheng@twnic.net.tw&gt;</author>
<category><![CDATA[javascript]]></category>
<pubDate>Mon, 02 Mar 2015 03:46:34 +0000</pubDate> 
<guid>https://xdeath.tw/read.php?27</guid> 
<description>
<![CDATA[ 
	上一篇是在頁面中分割出一張div並且使用捲軸效果<br/><br/>本篇是直接把整個頁面當捲軸，程式碼更為簡單<br/><br/>如果要嵌入到某個網頁中，用iframe或div即可<br/><br/>程式碼如下<br/><br/>======================Javascript======================<br/><br/><div class="code"><br/>&lt;script&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;$(function()<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;start = 0;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //起始資料<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;range = 50;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //一次撈出多少筆資料<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$(window).scroll(function()<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#123;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$BodyHeight = $(document).height();&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//判斷所見範圍的高度<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$ViewportHeight = $(window).height();&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//偵測目前捲軸頂點<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$ScrollTop=$(this).scrollTop();&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if($BodyHeight == ($ViewportHeight+$ScrollTop))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#123;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var end = start + range;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$.ajax(&#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;type: &quot;GET&quot;,<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;url: &quot;data.php&quot;,<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;data: &quot;start=&quot; + start + &quot;&amp;end=&quot; + end,<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;success: function(data)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$(&quot;table tr:last&quot;).after(data);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//表格插入新資料<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#125;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#125;);&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;start = end + 1;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#125;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#125;);&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#125;);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;/script&gt;<br/></div><br/><br/>======================Javascript======================<br/><br/><div class="code"><br/>&lt;body&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;table name=&#039;table&#039; border=&#039;1&#039; width=&#039;800&#039;&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;tr&gt;&lt;td&gt;ID&lt;/td&gt;&lt;td&gt;公司名稱&lt;/td&gt;&lt;td&gt;網址&lt;/td&gt;&lt;td&gt;住址&lt;/td&gt;&lt;td&gt;電話&lt;/td&gt;&lt;/td&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;div id=&#039;data&#039;&gt;&lt;?php echo initdata(); ?&gt;&lt;/div&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;/table&gt;<br/>&lt;/body&gt;<br/></div>
]]>
</description>
</item><item>
<link>https://xdeath.tw/read.php?25</link>
<title><![CDATA[jquery產生facebook捲軸拉到底部自動新增資料效果(一)]]></title> 
<author>admin &lt;tszheng@twnic.net.tw&gt;</author>
<category><![CDATA[javascript]]></category>
<pubDate>Thu, 26 Feb 2015 07:36:22 +0000</pubDate> 
<guid>https://xdeath.tw/read.php?25</guid> 
<description>
<![CDATA[ 
	像facebook一開始只會秀出最近的動態，當拉到底部後會再撈取資料放置到最底部<br/><br/>原理很簡單，利用javascript去動態判斷捲軸已經到底部<br/><br/>接下來用ajax去另一個網頁撈新的資料，同時修改現在資料的定位點<br/><br/>接著將撈回來的資料用jquery append到原本資料的底部<br/><br/>以下是大概的範例<br/><br/>======================捲軸部分的CSS==========================<br/><div class="code"><br/>&lt;script type=&quot;text/javascript&quot; src=&quot;http://code.jquery.com/jquery-1.7.1.js&quot;&gt;&lt;/script&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;style&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;#scroll &#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;width: 99%;<br/>&nbsp;&nbsp;&nbsp;&nbsp;height: 97%;<br/>&nbsp;&nbsp;&nbsp;&nbsp;overflow: auto; /* 讓它有捲軸 */<br/>&nbsp;&nbsp;&nbsp;&nbsp;border: 1px solid ;<br/>&nbsp;&nbsp;&nbsp;&nbsp;margin-bottom: 10px;<br/>&nbsp;&nbsp;&nbsp;&nbsp;padding: 0px;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#125;<br/>&nbsp;&nbsp;&nbsp;&nbsp;.red &#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;color: red;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#125;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;/style&gt;<br/></div><br/>======================判斷捲軸與新增資料======================<br/><div class="code"><br/>&lt;script&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;var range = 50;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //這邊是一次要撈50筆資料放到表格最後<br/>&nbsp;&nbsp;&nbsp;&nbsp;var start = 0;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//從第0筆開始顯示<br/>&nbsp;&nbsp;&nbsp;&nbsp;$(function()<br/>&nbsp;&nbsp;&#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;$(&#039;#scroll&#039;).scroll(function()<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var $this = $(this);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var $scroll = $(&#039;#scroll&#039;),<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;_height = $scroll.height();<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;_scrollHeight =&nbsp;&nbsp;$scroll.prop(&#039;scrollHeight&#039;);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;_maxScrollHeight = _scrollHeight - _height;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(_maxScrollHeight &lt; $this.scrollTop() )<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var end = start + range;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$.ajax(&#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;type: &quot;GET&quot;,<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;url: &quot;data.php&quot;,<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;data: &quot;start=&quot; + start + &quot;&amp;end=&quot; + end,<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;success: function(data)&#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$(&quot;table tr:last&quot;).after(data);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //表格最後插入資料，用append會出問題<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sleep(200);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#125;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#125;);&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;start = end + 1;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#125;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#125;);<br/>&nbsp;&nbsp;&#125;);<br/>&nbsp;&nbsp;function sleep(ms)&#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;var starttime= new Date().getTime();<br/>&nbsp;&nbsp;&nbsp;&nbsp;do&#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#125;while((new Date().getTime()-starttime)&lt;ms)<br/>&nbsp;&nbsp;&#125;<br/>&lt;/script&gt;<br/></div><br/>======================html==========================<br/><div class="code"><br/>&lt;div id=&#039;scroll&#039;&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;table name=&#039;table&#039; border=&#039;1&#039; width=&#039;800&#039;&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;tr&gt;&lt;td&gt;ID&lt;/td&gt;&lt;td&gt;公司名稱&lt;/td&gt;&lt;td&gt;網址&lt;/td&gt;&lt;td&gt;住址&lt;/td&gt;&lt;td&gt;電話&lt;/td&gt;&lt;/td&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;div id=&#039;data&#039;&gt;&lt;?php echo initdata(); ?&gt;&lt;/div&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//起始資料<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/table&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;/div&gt;<br/></div><br/>======================實際效果==========================<br/><br/>基本上到底是會自動像data.php取得新的資料沒啥問題<br/><br/>不過不知道為什麼一次會取一堆資料回來<br/><br/>猜測可能是還沒取回資料前滾輪繼續往下拉導致程式認定多次到達底部，<br/><br/>這個部分在到達底部時加上alert或讀取畫面應可解決。
]]>
</description>
</item>
</channel>
</rss>