內,您的for循環中,要設置的#frame
的src
屬性,但它是一個div
不是img
。
所以,與其這樣:
$("#frame").attr('src', ''+i+'.jpg');
試試這個:
$("#frame").css('background-image', 'url(' + i + '.jpg)');
要滾動事件綁定到目標element
使用jQuery:
$('#target').scroll(function() {
//do stuff here
});
要綁定滾動事件到window
使用jQuery:
$(window).scroll(function() {
//do stuff here
});
這裏是documentation的jQuery .scroll()
。
UPDATE:
如果我的理解沒錯,這裏是你想達到什麼working demo on jsFiddle。
CSS:
html, body {
min-height: 1200px; /* for testing the scroll bar */
}
div#frame {
display: block;
position: fixed; /* Set this to fixed to lock that element on the position */
width: 300px;
height: 300px;
z-index: -1; /* Keep the bg frame at the bottom of other elements. */
}
的Javascript:
$(document).ready(function() {
switchImage();
});
$(window).scroll(function() {
switchImage();
});
//using images from dummyimages.com for demonstration (300px by 300px)
var images = ["http://dummyimage.com/300x300/000000/fff",
"http://dummyimage.com/300x300/ffcc00/000",
"http://dummyimage.com/300x300/ff0000/000",
"http://dummyimage.com/300x300/ff00cc/000",
"http://dummyimage.com/300x300/ccff00/000"
];
//Gets a valid index from the image array using the scroll-y value as a factor.
function switchImage()
{
var sTop = $(window).scrollTop();
var index = sTop > 0 ? $(document).height()/sTop : 0;
index = Math.round(index) % images.length;
//console.log(index);
$("#frame").css('background-image', 'url(' + images[index] + ')');
}
HTML:
<div id="frame"></div>
進一步建議:
我建議你改變體的background-image
,而不是股利。但是,如果您必須爲此使用div
;那麼您最好在window
中添加一個調整大小 event-istener,並在每次調整大小時設置/更新該div的高度。原因是;在任何瀏覽器中,height:100%
無法正常工作。
當你滾動鼠標或者你想要這個背景變化像圖像鏈(24圖像/秒?)時,你希望'div'的背景滾動嗎? –
我不想
div
滾動..我希望它保持靜止...但div的背景應該改變..當用戶滾動...例如在每10px滾動,圖像應該改變.. –