实现百度的换一换(一)

*{
margin: 0;
padding: 0;
}

#maxbox{
width: 405px;
height: 400px;
margin: 0 auto;
}
 
/* 这是标题部分 */
#maxbox .changlink{
width: 405px;
height: 40px;
line-height:40px;
background: pink;
}

/*搜索热点部分 */
#maxbox .changlink .searchhot{
display: inline-block;
margin-left: 10px;
}
 
/* 换一换 */
#maxbox .changlink .change{
text-decoration: none;
margin-left: 265px;
}

/* 内容区域最大的盒子 设置宽高 超出部分消失 它的高度应该和每一批的高度一致 24*6=144 */
#maxbox .listcontentbox {
position: relative;
overflow: hidden;
width: 405px;
height: 144px;
}
 
/* li的父级元素ui */
#maxbox .listcontentbox .listcontent{
position: absolute;
list-style: none;
}

#maxbox .listcontentbox .listcontent>li{
height: 24px;
width: 405px;
line-height: 24px;
background: #ccc;
}

#maxbox .listcontentbox .listcontent>li:nth-child(even){
background-color: #E6E6E6
}
<!--
布局=》 一个大的div 中包含2个小的div 一个是标题 一个是内容 内容中有ul 》li

css样似=》
内容区域最大的盒子 设置宽高 超出部分消失 它的高度应该和每一批的高度一致 24*6=144 相对定位
li的父级元素ul绝对定位
li内容区域应该这是行高 和高度

思路:
计算li的父级ui的高度。----》计算现实6个li的高度-----》定义一个索引值,点击按钮,索引值加1----》ul上上移动
if(num==6){ //如果有n批就等于n
num=0;
}

ul.style.top=-liheight*num+"px"; //这里是ul往上移动,而不是ul的高度往上移动
-->
<div id="maxbox">
<!-- 这是标题部分 -->
<div class="changlink">
<span class="searchhot">搜索热点</span> <a href="javascript:;" class="change">换一换</a>
</div>

<!-- 这是内容部分 -->
<div class="listcontentbox">
<ul class="listcontent">
<li>1111111</li>
<li>2222222</li>
<li>1111111</li>
<li>4444444</li>
<li>1111111</li>
<li>66666666</li>
<li>1111111</li>
<li>2222sfsfsdf222</li>
<li>1111111</li>
<li>4444222sfsfsdf444</li>
<li>1111111</li>
<li>66666666</li>
<li>1111111</li>
<li>2222222</li>
<li>11111sfsf11</li>
<li>4444444</li>
<li>1111111</li>
<li>6666sfs6666</li>
<li>1111111</li>
<li>22222fsd22</li>
<li>1111111</li>
<li>4444444</li>
<li>1111111</li>
<li>66666666</li>
<li>1111111</li>
<li>22sczfdsfsfdfsdf22222</li>
<li>1111111</li>
<li>4444444</li>
<li>1111sfsf111</li>
<li>66666666</li>
<li>1111111</li>
<li>2222222</li>
<li>11111sfsdf11</li>
<li>4444444</li>
<li>1111111</li>
<li>66666666</li>
</ul>
</div>
</div>
 
// css中ul要超出部分就隐藏起来
var changeLinkModule=(function(){

// 计算li的父级ui的高度
var ul=document.querySelector(".listcontent");
var ulheight=ul.offsetHeight;
console.log(ulheight); //

// 计算现实6个li的高度
var li=document.querySelector('li');
var liheight=li.offsetHeight * 6;
console.log("每一批的高度是"+liheight); //24*6=144
 
var num=0;// 定义一个索引值
var change= document.querySelector(".change"); //选中按钮

var changelist=function(){
change.addEventListener('click',function(){
// alert("1");
// 这里你打不出来是是因为后面 你没有调用
num++;
if(num==6){ //如果有n批就等于n
num=0;
}
ul.style.top=-liheight*num+"px"; //这里是ul往上移动,而不是ul的高度往上移动
});
};
 
return {
huanyihuan:changelist
}
})();
changeLinkModule.huanyihuan();

转载于:https://www.cnblogs.com/IwishIcould/p/10421280.html

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
当然可以!以下是一个使用百度地图API实现地图功能的示例代码。 HTML部分: ```html <div id="map" style="width: 100%; height: 400px;"></div> ``` JavaScript部分: ```javascript // 在HTML中引入百度地图API脚本 <script type="text/javascript" src="http://api.map.baidu.com/api?v=3.0&ak=YOUR_API_KEY"></script> // 在JavaScript中初始化地图 var map = new BMap.Map("map"); // 创建地图实例 var point = new BMap.Point(116.404, 39.915); // 创建点坐标 map.centerAndZoom(point, 15); // 初始化地图,设置中心点坐标和地图级别 // 添加标注 var marker = new BMap.Marker(point); // 创建标注 map.addOverlay(marker); // 将标注添加到地图中 // 添加控件 map.addControl(new BMap.NavigationControl()); // 添加平移缩放控件 map.addControl(new BMap.ScaleControl()); // 添加比例尺控件 // 添加地图事件 map.addEventListener("click", function(e) { var marker = new BMap.Marker(e.point); // 创建标注 map.clearOverlays(); // 清除之前的标注 map.addOverlay(marker); // 将新的标注添加到地图中 }); ``` 注意替代码中的`YOUR_API_KEY`为你自己的百度地图API密钥。这段代码创建了一个包含地图容器的HTML页面。在JavaScript部分,首先创建了一个地图实例,并指定了初始的中心点坐标和地图级别。然后通过`BMap.Marker`创建了一个标注,并添加到地图中。还添加了平移缩放控件和比例尺控件,以及地图点击事件,点击地图时会在点击位置添加一个新的标注,并清除之前的标注。 希望这可以帮助到你!如有任何问题,请随时提问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值