移动端-模拟下拉列表

在移动端使用原生的下拉列表(select)会有自带的样式,想要做到自定义样式怎么办呢?

首先第一步会去掉默认样式:-webkit-appearance:none;这些对input下的各类型属性,如:type="date",会去掉默认样式,但是这时候对select设置的边框,宽度或者是文字居中显示等等样式都不起作用。这时候就需要模拟select框了。因为select在移动端上会用到手机默认的弹框,所以还是要用到select标签。

最终效果如图:

html结构如下:

1 <div class="select-area">
2     <span class="select-value"></span>
3     <select>
4        <option>甘肃</option>
5        <option>兰州</option>
6     </select>
7 </div>

select-value用来存储下拉框选中的值,隐藏select,然后利用JS控制显示的下拉框的值。

相应的样式如下:

 1 .select-area{
 2   position: relative;
 3   overflow: hidden;
 4 }
 5 .select-area select{
 6   position: absolute;
 7   left: 0;
 8   top: 0;
 9   opacity: 0;
10   width: 100%;
11 }

接下来就是用到JS来控制选中值的显示了:

1 $(".select-area .select-value").each(function(){
2                 if( $(this).next("select").find("option:selected").length != 0 ){
3                     $(this).text( $(this).next("select").find("option:selected").text() );
4                 }
5             });
6             $(".select-area select").change(function(){
7                 var value = $(this).find("option:selected").text();
8                 $(this).parent(".select-area").find(".select-value").text(value);
9             });

最终效果就是如上图显示的手机上的效果。

时间: 2024-10-09 01:48:38

移动端-模拟下拉列表的相关文章

模拟下拉列表 - select

名称:laSelect 功能:模拟浏览器的原生下拉列表功能 原因:解决下拉列表在IE 7 - 下的兼容性问题,并提供更自由的外观以及功能设定. ---------------------------------------------------------------- 1. 使用方法: (1) html 结构: 创建一个包裹所有内容的盒子,必须要指定一个id,该元素由使用者自己创建: <div id='selectBox'></div> (2) 引入:laSelect.js 2

模拟下拉列表select

<!doctype html> <html> <head> <meta charset="utf-8"> <title>模拟下拉菜单</title> <style> * { margin: 0; padding: 0; } body { font: 14px '微软雅黑'; color: #555; padding:50px; } ul { list-style: none; } p { margin-

【抓包工具】fiddler4-移动端模拟返回数据

1.大家在做移动端功能测试的时候,经常会遇到返回的数据不是自己想要的,开发gg又很忙,不可能实时帮你造一批数据,那怎么办呢,没错,Fiddler基本可以帮你克服这一困难 2.首先操作Fiddler->Rules-Automatic Breakpoints->After Responses,选中After Responses 3.接下去使用手机连接代理,代理篇请见:http://www.cnblogs.com/wonderful0714/p/4586181.html 4.接下去打开APP进行请求

上传文件 服务端模拟存储

这里可以选用Parcelable来进行序列化,parcelable效率更高,我这里选用的是serializable 服务端和客户端都要有此文件,并且所在的包名要一致 不懂可以参考parcelable(http://www.cnblogs.com/mydomainlistentome/p/4687173.html); package lyl.sole.util; import java.io.Serializable; public class SerializUtil implements Se

移动端 模拟键盘 盖住表单

关于移动端页面弹出框被软键盘遮挡的问题 移动端虚拟键盘遮挡页面输入框等元素的解决方案 vue 移动端input被输入法键盘挡住解决方法 移动端弹出输入框遮挡问题处理方案 原文地址:https://www.cnblogs.com/justSmile2/p/10950688.html

网络编程(自定义图形界面浏览器-Tomcat服务端). 模拟IE 的请求

package netTest; import java.io.*; import java.net.*; public class IE { public static void main(String[] args) throws Exception { Socket s = new Socket("127.0.0.1",8080); PrintWriter out = new PrintWriter(s.getOutputStream(),true); out.println(&

移动端-模拟手势事件

<!doctype html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> </head> <body> <style type="text/css"> .touch-box{ background-color: #444; color:whi

智能预判 (六: 服务端战斗 模拟)

服务端 模拟,是指,和 客户端 做法一样,给出人物属性,按照序列帧,开始执行计算.但服务端 运行速度 远远大于客户端. 这里的最关键做法,要注意2点!!! 1: 战斗过程,必须是同步计算,千万不能有 一个 异步处理!!!! 好多u3d的朋友,喜欢用 事件,喜欢用协成.这里注意了,别用哦,虽然处理流程 起来会 比较麻烦. 2:后台 必须设计 一套 和 客户端一样的 程序流程.看下我的 片段代码. 这个是后台,但里面的start update 和 客户端 流程 一模一样!!! 当然 更多细节 还不止

模拟tap事件和longTap事件

移动端模拟tap和longTap事件,基本原理就是在touchstart和touchend事件中,计算触摸的位移和时间差,位移在一定范围内(轻微滑动),时间小于150ms为tap事件,时间大于300ms为longTap事件. (function(){ var TOUCHSTART, TOUCHEND; if (typeof(window.ontouchstart) != 'undefined') { TOUCHSTART = 'touchstart'; TOUCHEND = 'touchend'