总结--原生js实现整屏滚动及其交互效果
来源:互联网 发布:微信摇塞子作弊软件 编辑:程序博客网 时间:2024/06/07 03:05
新手一枚,发现最近蛮流行鼠标整屏幕滚动作为基础的交互效果。
还不会用框架- -尝试着用JS+CSS写了
希望大家多多指点
需求:
当用户每滑动一次鼠标时,屏幕相应的向上/下/左/右 移动一个屏幕大小
以及每一屏都会有相应的动画
表达能力不好 希望大家能看得懂我在说啥- -
思路:
当用户还没有浏览到某一屏时,该屏幕不会出现动画效果。
当滑动到该屏时,可以通过增加/删除类来实现。
实现:
1.引入jquery.mousewheel.js文件
2.JS代码
var num = 0;
/*$(document)对整个网页文档进行操作
monsewheel是鼠标滚动方法
mousewheel(event n){} n代表滚动方向 向上为1 向下为-1*/
$(document).mousewheel(function(event,n){
num=num-n;
if(num<0){
num=0; //页面在第一页时不可再向上滑
}
if(num>4){
num=4; //页面在最后一页时不可再向下滑
}
//屏幕整屏滚动 section元素相对自身移动
$('section').stop().animate({'top':-100*num+'%'},400);
/*顶部菜单交互事件*/
/*.eq()为选择器 选择指定位置的元素 类似于CSS中的nth-of-type()*/
/*siblings()对除了自身外的同级元素的操作*/
$('#menu li').eq(num).siblings().removeClass('current');
$('#menu li').eq(num).addClass('current');
/*右边菜单颜色变化*/
$('#rightmenu li').eq(num).siblings().removeClass('olcurrent');
$('#rightmenu li').eq(num).addClass('olcurrent');
/*section的子级div发生变化*/
$('section>div').eq(num).removeClass('no');
$('section>div').eq(num).siblings().addClass('no');
$('section>div').eq(num).addClass('ani');
});
//右边菜单交互事件
$('#rightmenu li').click(function(event) {
$(this).addClass('olcurrent');
$(this).siblings().removeClass('olcurrent');
$(this).addClass('current');
$(this).siblings().removeClass('current');
var index=$(this).index();
$('section>div').eq(index).removeClass('no');
$('section>div').eq(index).siblings().addClass('no');
$('section>div').eq(index).addClass('ani');
$('#menu li').eq(index).addClass('current');
$('#menu li').eq(index).removeClass('current');
//num=index;
$('section').animate({'top':-100*index+'%'},100);
});
- 总结--原生js实现整屏滚动及其交互效果
- 原生 js 实现全屏滚动效果
- 原生js实现歌词滚动以及卡拉OK效果
- 原生Js无缝滚动效果的简单实现
- 原生js实现无缝滚动
- 原生js实现随着滚动条滚动,导航会自动切换的效果
- js实现滚动效果
- js实现滚动效果
- 原生JS实现运动效果
- 原生js放大镜效果实现
- 原生JS实现走马灯效果
- 原生js利用鼠标滚轮实现滚动到当前页面实现动画效果
- JS原生实现自定义滚动条
- js原生实现百叶窗上下滚动
- 原生js实现公告栏向上滚动
- 【js基础】原生js实现模态弹窗效果
- JS实现DIV交互效果
- js实现无缝滚动效果
- centos7安装zabbix3.0超详细步骤解析
- 菜鸟飞行记——二、jQuery miniui知识随记
- pat 天梯团体赛练习-l2-019 悄悄关注
- QDomDocument的setContent方法报错
- 设计模式--初识设计模式
- 总结--原生js实现整屏滚动及其交互效果
- Android获取手机的型号和系统版本
- 深入PHP面向对象、模式与实践——对象工具(2)
- String类的经典例子
- centos vsftp:425 failed to establish connection解决办法 (ls,dir等命令不能使用)
- 【Unity3D UGUI】事件接口(二) 鼠标按下、抬起、点击
- python中的转义字符
- 2015年第六届蓝桥杯C/C++程序设计本科B组省赛 奖券数目(结果填空)
- scrapy爬虫不会被禁止