基于H5和JS的仿京东商城类首页

发布时间:2019-06-16
技术:html5,javascript,css

概述

纯原生JS的仿京东首页的首页,高比率还原京东首页各类动态效果和样式,有需要的童鞋可以参考借鉴,或者直接拿来用,哈哈可以省很多功夫哦,嘻嘻。

详细

一、实际效果

image.png

image.png

image.png


二、目录结构


image.png

说明:

images 文件夹用来存放页面所需图片

jd.css 网页所需样式

jd.js 网页动态效果所需js

jingdong.html 首页所需html结构

jquery-1.8.3.min.js 网页动态效果可选实现方式,js文件中已注释

reset.css 网页样式初始化设置

三、详细步骤

引用项目所需样式表和JS文件

<!doctype html>
<html>
<head>
	<meta charset="utf-8">
	<title>京东(JD.COM)-综合网购首选-正品低价、品质保障、配送及时、轻松购物!</title>
	<meta name="keywords" content="">
	<meta name="description" content="">
	<link rel="stylesheet" href="reset.css">
	<link rel="stylesheet" href="jd.css">
</head>
<body>
        //主体内容
	<script src="jquery-1.8.3.min.js"></script>
	<script src="jd.js"></script>
</body>
</html>


下述JS只是网页部分效果的实现,均为原生JS所写,其中涉及一些DOM操作,没有使用jquery,有需要的可以使用$('[dom节点]')替代。

window.onload=function(){
    var aCon=document.getElementById('con');
	var aLis=aCon.getElementsByTagName('li');
	var aNav=document.getElementById('nav');
	var aLis2=aNav.getElementsByTagName('li');
	var aLeft=document.getElementById('left');
	var aRight=document.getElementById('right');
	var num=0;
	var timer1=timer2=null;
	function auto(){
		num++;
		if (num>=aLis.length) {
			num=0;
		};
		move();
	}
	timer1=setInterval(auto,3000);
	//计时器要写在外层,能够彻底清除
	function move(){
		clearInterval(timer2);
		for (var i = 0; i < aLis.length; i++) {
			aLis[i].style.opacity=0;
			aLis2[i].style.background='#3E3E3E';
		};//每次都把样式清零
		aLis2[num].style.background='#B61B1F';
		var op=0;
		timer2=setInterval(function(){
			op+=0.02;
			if (op>=1) {
				op=1;
				clearInterval(timer2);
			};
			aLis[num].style.opacity=op;
		},25)
	}
	for (var i=0; i<aLis2.length; i++){
		aLis2[i].id=i;
		//保存当前下标
		aLis2[i].onmouseenter=function (){
			clearInterval(timer1);
			num=this.id;/*同步下标*/
			move();
		}
		aLis2[i].onmouseout=function (){
			timer1=setInterval(auto,3000);
		}

	}
	aLeft.onclick=function () {
		clearInterval(timer1);
		clearInterval(timer2);
		num--;
		if (num<0) {
			num=aLis.length-1;
		};
		move();
		timer1=setInterval(auto,3000);
	}
	aRight.onclick=function () {
		clearInterval(timer1);
		clearInterval(timer2);
		num++;
		if (num>=aLis.length){
			num=0;
		};
		move();
		timer1=setInterval(auto,3000);
	}
	//底部自动滚动
	var f13c2_div3=byclass('f13c2_div3')[0];
	var timer151=timer152=null;
	var s=0;
	var sctop=0;
	f13c2_div3.scrollTop=690;
	timer151=setInterval(function(){
		s++;
		if (s>6) {
			f13c2_div3.scrollTop=690;
			s=1;
			sctop=0;
		};
		clearInterval(timer152);
		timer152=setInterval(function(){
			sctop++;
			if (sctop>=115*s) {
				clearInterval(timer152);
			};
			f13c2_div3.scrollTop=690-sctop;
		},1)
	},4000)
	
}

四、细节说明

本项目初衷只是用来练习Html和原生dom操作以及各类动态效果的实现。

html有将近1万多行,占了90%均为重复代码,大家可以根据所选MVVM框架进行遍历,取主体框架即可。

JS有将近1000行代码,其中包括轮播图,左右滚动,返回顶部,tab切换,嵌套切换等所有实际项目所需的效果,许多dom操作,用jquery替代的话能省略不少代码,大家可以用来借鉴。


本实例支付的费用只是购买源码的费用,如有疑问欢迎在文末留言交流,如需作者在线代码指导、定制等,在作者开启付费服务后,可以点击“购买服务”进行实时联系,请知悉,谢谢
手机上随时阅读、收藏该文章 ?请扫下方二维码