滚动效果,相信大家已经见过太多,无外乎就是加载一个js特效。开始之前为大家介绍一下侧边栏的构成部分,因为本文采用js特效可以具体到侧边栏某模板(比方说A)到达顶部时,指定模块(比方说B)开始随页面滑动。侧边栏是怎么样的构造侧边栏可以通过小工具或者自行编辑sidebar.php代码来完成,模块布局灵活,一般包括近期文章,近期评论,标签云等等等。下面就是一个常见的侧边栏结构,模块id是我自行编写的,方便大家辨识。divid="sidebar"divclass="recentposts".../div//近期文章 divclass="hotposts".../div//热门文章 divclass="tagcloud".../div//标签云 divclass="recentcomments".../div//近期评论 divclass="blogroll".../div//连接表 /div上面就是一个简单的侧边栏构造,注各个模块的id,在下一步滚动代码中将得到对应。如何让侧边栏滚动起来下面就以热门文章、标签云两个相邻模块作为指定滚动模块,来说明指定模块如何实现随窗口滑动。varrollStart = $('.recentcomments'), //近期评论模块到达浏览器顶部时,指定模块开始滚动rollOut = $('.recentcomments,.blogroll'); //近期评论以下模块隐藏包括最新评论,指定模块显现rollStart.before('div class="rollbox"/div'); //这个可以不用修改,与下面保持一致varoffset = rollStart.offset(),objWindow = $(window),rollBox = rollStart.prev(), rollSet = $('.hotposts,.tagcloud'); //指定滚动的模块idobjWindow.scroll(function() { if (objWindow.scrollTop() offset.top){ if(rollBox.html(null)){ rollSet.clone().prependTo('.rollbox');//注意与上面的保持一直,不用做修改。 } rollOut.fadeOut(); rollBox.show().stop().animate({marginTop: objWindow.scrollTop() - offset.top + 20},400); } else { rollOut.fadeIn(); rollBox.hide().stop().animate({marginTop:0},400); } });你可以将其粘贴到主题js文件中,也可以用script type="text/javascript".../script将其括起来放置到header头文件中。代码说明:随着网页滚动条的滑动,当近期评论模块到达浏览器顶部,近期评论以下的模块包括近期评论隐藏消失,指定模块热门文章和标签云随即显示,开始随窗口滚动。此处代码以最新评论模块为临界点,过了此临界点指定模块显现开始滚动。代码中模块的id一定要和侧边栏sidebar.php模块的id保持一致。请结合代码中的说明理解。注明:指定滚动模块整体高度不要超过浏览器视窗的高度,否者会无限向下延伸。好了,就这样吧。0
我们提供的服务有:成都做网站、成都网站设计、成都外贸网站建设、微信公众号开发、网站优化、网站认证、舟山ssl等。为上千家企事业单位解决了网站和推广的问题。提供周到的售前咨询和贴心的售后服务,是有科学管理、有技术的舟山网站制作公司
从SEO角度来看,不建议在面包屑导航上加这样的效果。再说这样加的话,内页的结构可能会造成错位。
引用大神回答如下,希望可以帮到你:
(function() {
var stepSize = 200, //每滚动一格鼠标,移动多少距离
doc = document.documentElement,
body = document.body,
docWidth = doc.clientWidth,
scrollLeft = -1,
ready = false;
//添加鼠标滚轮事件
if (document.addEventListener) {
document.addEventListener('mousewheel', scroll, false);
document.addEventListener('DOMMouseScroll', scroll, false); //针对firefox
} else {
document.attachEvent('onmousewheel',scroll) //针对老ie浏览器
}
//处理mousewheel事件的信息
function scroll (event) {
//第一次滚动需要获取当前滚动位置
if (!ready) {
scrollLeft = doc.scrollLeft + body.scrollLeft;
ready = true;
}
//firefox用detail反映滚动方向,而且方向和其他浏览器相反。其他浏览器用wheelDelta
var direction = event.wheelDelta || -event.detail;
//保证滚动到头的时候不再调用update函数
if (scrollLeft = 0 direction 0) {
return;
}
if (scrollLeft = docWidth direction 0) {
return;
}
//根据鼠标滚动的方向确定是往左还是往右移动
var distance = direction 0? -stepSize : stepSize;
update(distance);
}
//滚动
function update (distance) {
scrollLeft += distance;
doc.scrollLeft = scrollLeft;
body.scrollLeft = scrollLeft; //针对webkit浏览器
}
})();
css里必须有这样一条:
html, body {
height: 100%;
}