博客列表 >利用jq实现导航条隐藏与购物车界面功能—2019年1月24日 10:05

利用jq实现导航条隐藏与购物车界面功能—2019年1月24日 10:05

蜗牛的博客
蜗牛的博客原创
2019年01月24日 10:05:381206浏览

一、导航条隐藏功能

1、当页面滚动时触发事件,滚动到一定距离时隐藏导航条,又到一定距离后显示导航条,并更新样式

2、特别注意的是,scrollTop是页面卷起的高度,并非滚动条滚动的距离

  $(window).scroll(function(){

      //页面往上卷起的距离大于导航高度时,隐藏顶部导航

      //卷起的距离不是滚动条滚动的距离,两者距离不一样

      if($(window).scrollTop()>60) {


3、当页面卷起高度超过轮播图的高度后,导航条重新显示,并更新样式

      if($(window).scrollTop()>580) {

        $('.content').addClass('content_2').css('display','block')

      }


实例

<!DOCTYPE html>
<html>
<head>
  <title>获取滚动值案例</title>
  <link rel="icon" type="image/x-icon" href="images/2.png"> 
   <script src="https://code.jquery.com/jquery-3.1.1.min.js"></script>
   <style type="text/css">
      *{margin: 0;padding: 0;}
      .content{ width:100%;height:60px;
                background: rgba(160,3,162,0.1);
                box-shadow: 1px 3px 7px #ccc;
                line-height: 60px;
                position: fixed;
              }
      .content_2{
        background: rgba(160,3,162,0.4);
      }
      form{width: 500px;height: 35px;position: relative;margin: 0 auto;}
      input{width:480px;height: 35px;border-radius: 20px;border:none;outline: none;padding-left:20px;}
      button{width: 70px;height:35px;order:none; 
            border-top-right-radius: 20px;border-bottom-right-radius: 20px;border: none;
            color: #fff;position: absolute;right:0;top:14px;
            outline: none;font-weight: bold;
            background: rgba(160,3,162,0.4);
          }
      [placeholder]{color:rgba(160,3,162,0.6)}
      .pic{width: 70%;height: 580px;background: url(images/3.jpg);margin: 0 auto;}
      .box{width: 70%;height:1200px;background:rgba(108,108,106,0.1);margin: 0 auto; }
   </style>

</head>
<body> 
<!-- 顶部导航 -->
 <div class="content">
   <form>
    <input type="text" placeholder="# 请输入关键词 #">
    <button>全网搜</button>
  </form>
 </div>
 <!-- 轮播图 -->
 <div class="pic"></div>
 <!-- 页面详情 -->
 <div class="box"></div>




<!--  实现搜索框的样式改变 -->

<script>
//文档就绪
  $(function(){
    //当窗口滚动时触发事件
    $(window).scroll(function(){
      //页面往上卷起的距离大于导航高度时,隐藏顶部导航
      //卷起的距离不是滚动条滚动的距离,两者距离不一样
      if($(window).scrollTop()>60) {
        $('.content').css('display','none')
      }
      else{
        $('.content').css('display','block')
      }
      if($(window).scrollTop()>580) {
        $('.content').addClass('content_2').css('display','block')
      }
      else{
        $('.content').removeClass('content_2')
      }
      
    })
  })
</script>
</body>
</html>

运行实例 »

点击 "运行实例" 按钮查看在线实例


二、购物车界面

实现功能:

1、一个属性只能选择一个值,如:颜色只能选择一种;机身版本只能选一种

//点击span触发事件
     $('span').click(function(){
      //判断点击的这个元素是否被选中
      if($(this).hasClass('selected')){
       //被选中则移除选中效果
       $(this).removeClass('selected')
      }
      else{
       //没有被选中则添加上选中效果,并选中其所有同级span,让它们移除选中效果
       $(this).addClass('selected').siblings('span').removeClass('selected')
      }


2、某个属性没选时,会有弹窗提示

//点击span触发事件
     $('span').click(function(){
      //判断点击的这个元素是否被选中
      if($(this).hasClass('selected')){
       //被选中则移除选中效果
       $(this).removeClass('selected')
      }
      else{
       //没有被选中则添加上选中效果,并选中其所有同级span,让它们移除选中效果
       $(this).addClass('selected').siblings('span').removeClass('selected')
      }


3、***数量必须大于1

4、能在控制台看到所选信息


实例

<!DOCTYPE HTML>
<html>
<head>
<title>点击商品选中效果</title>
<meta charset="utf-8"/>
 <link rel="icon" type="image/x-icon" href="images/2.png"> 
 <script src="https://code.jquery.com/jquery-3.1.1.min.js"></script>
 <style type="text/css">
	* {margin: 0px auto;padding: 0px;}
	.top {width: 402px;height: 35px;
		  line-height: 35px;text-align:center;
		  margin-top: 50px;
		  background: #C40000;color:#fff;
		}
	.main {width: 400px;height: 400px;border: 1px solid #C40000;}
	p {width: 400px;height: 26px;margin-top:10px;}
	b {width: 90px;height: 26px;
	   line-height: 26px;text-align: center;
	   font-size: 12px;color:#838383;
	   border: 1px solid #ccc;   
	   float: left;margin-left: 5px;}
	span {width: 90px;height: 26px;line-height: 26px;
		text-align: center;font-size: 12px;
		color:#838383;border: 1px solid #ccc;
		display: block;float: left;margin-left: 5px;}
	span:hover {cursor: pointer;}
	button {width: 120px;height: 35px;background: #C40000;color: white;border: 0px;}
	button:hover {cursor: pointer;}
	.notice{
		border:0px;
	}

	.selected{
		border: 2px solid #C40000;
		width: 88px;
		height: 24px;
		color: red;
	}
</style>

</head>
<body>
  <div class="top">请选择信息后加入购物车</div>
	<div class="main">
		<p class="item" name="version">
			<b class="notice">版本</b>
			<span>ONE A2001</span>
			<span>ONE A0001</span>
			<span>ONE A1001</span>
		</p>
		<p class="item" name="color">
			<b class="notice">机身颜色</b>
			<span>白色</span>
			<span>黑色</span>
			<span>金色</span>
		</p>
		<p class="item" name="type">
			<b class="notice">套餐类型</b>
			<span>标配</span>
			<span>套餐一</span>
			<span>套餐二</span>
		</p>
		<p class="item" name="ram">
			<b class="notice">运行内存</b>
			<span>2GB</span>
			<span>3GB</span>
			<span>4GB</span>
		</p>
		<p class="item" name="rom">
			<b class="notice">机身内存</b>
			<span>16GB</span>
			<span>32GB</span>
			<span>64GB</span>
		</p>
		<p class="item" name="location">
			<b class="notice">产地</b>
			<span>中国大陆</span>
			<span>港澳台</span>
		</p>
		<p class="item" name="price">
			<b class="notice">价格</b>
			<span>999元抢购</span>
		</p>
		<p class="item1" name="num">
			<b class="notice">数量</b>
			<input type="number" value="1" style="width:40px;height:26px;">
		</p>

		<p style="margin-top:30px;margin-left:95px;">
			<button class="bu1" id='sub'>加入购物车</button>
		</p>		
  </div>



 <script>
 	
 	//实现功能:同一属性只能选择一个值,如:颜色只能有一种颜色
    $(function(){

    	//点击span触发事件
    	$('span').click(function(){

    		//判断点击的这个元素是否被选中
    		if($(this).hasClass('selected')){

    			//被选中则移除选中效果
    			$(this).removeClass('selected')
    		}

    		else{

    			//没有被选中则添加上选中效果,并选中其所有同级span,让它们移除选中效果
    			$(this).addClass('selected').siblings('span').removeClass('selected')
    		}
    	})


    	//点击加入购物车,弹出提示信息,在控制台输出元素和对应的值

    	$('.bu1').click(function(){

    		let obj1 = {}
    		let tof = true
    		//var b1 = $('p').children('b')
    		//var b1_value = $('p').children('span.selected')//在children方法里面添加更具体的参数来筛选

    		$('.item').each(function(){
    			
    			if($(this).children('span.selected').length != 1){

    				alert($(this).children('b').text()+'未选中')
    				tof=false
    			}
    			else{

    				let name = $(this).children('b').text()
    				obj1[name] = $(this).children('span.selected').text()
    			}

    			})

    			if($('.item1 input').val() < 1){

    				alert('***数量至少为1')
    				tof=false
    			}
    			else{

    				obj1[$('.item1').children('b').text()]=$('.item1 input').val()
    				
    			}
    		
    		if(tof){

    			console.log(obj1)

    			alert('成功加入购物车!')
    		}
    	})

    })
 </script>
</body>
</html>

运行实例 »

点击 "运行实例" 按钮查看在线实例

声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议