前端技术细节
CSS垂直居中:
第一步,先写好html:
<div class="container"> <!--容器内的元素将会居中--> <img src="fireworks.jpg" alt="fireworks"> </div>
然后写几句简单的css:
.container{ display: flex; justify-content: center; align-items: center; }
步骤分解:
1.设置container的display的类型为flex,激活为flexbox模式。
2.justify-content定义水平方向的元素位置
3.align-items定义垂直方向的元素位置
搞定。。。
构建正方形:
经常会用到页面里有多个正方形,如果将高度定死会缺乏适应性,本来用vw这样的写法代替就能解决,但安卓4.3以下不支持,好吧,那就另想办法咯!
function getWidth(class) {
var wid = $("." + class).width();
var interval = $("." + class).width() / 100;
$("." + class).css({
"height": wid + "px",
"margin": (interval * 7) + 'px' + " 1%"
});
}
可能会牺牲一丢丢性能,不过这是我能想到的最好的方法,也能实现最理想的效果。
不过,需要注意的事,调用这个函数的时候,如果该页面里正方形内的数据是循环出来的,位置会有所讲究,要放在模板渲染语句的后面,如果放在前面,可能会失效。
拖拽,使用一个命叫Sortable的js组件:
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title>混蛋小鹰</title> <script type="text/javascript" src="./js/jquery.min.js"></script> <script type="text/javascript" src="./js/Sortable.min.js"></script> <style> ul { list-style-type: none; border: 1px solid #4961BB; display: block; padding: 20px; width: 20%; margin: 3em auto; } .list { border: 1px solid #000; padding: 5px 20px; color: #fff; margin: 10px 0; } .around_1 .list { background: #67cbff; } .around_2 .list { background: -webkit-gradient(linear, left top, left bottom, color-stop(0, #67cbff), color-stop(1, #4269e1)); ; } </style> </head> <body> <section id="multi"> <ul class="around_1 add" id="around_1"> <li class="list">1</li> <li class="list">2</li> <li class="list">3</li> <li class="list">4</li> <li class="list">5</li> <li class="list">6</li> </ul> <ul class="around_2 add" id="around_2"> <li class="list">1</li> <li class="list">2</li> <li class="list">3</li> <li class="list">4</li> <li class="list">5</li> <li class="list">6</li> </ul> </section> <script type="text/javascript"> $(function() { var console = window.console; if (!console.log) { console.log = function() { alert([].join.apply(arguments, ' ')); }; } window.x = new Sortable(around_1, { group: "words", store: { get: function(sortable) { var order = localStorage.getItem(sortable.options.group); return order ? order.split('|') : []; }, set: function(sortable) { var order = sortable.toArray(); localStorage.setItem(sortable.options.group, order.join('|')); } }, onAdd: function(evt) { console.log('onAdd.around_1:', evt.item); }, onUpdate: function(evt) { console.log('onUpdate.around_1:', evt.item); }, onRemove: function(evt) { console.log('onRemove.around_1:', evt.item); }, onStart: function(evt) { console.log('onStart.around_1:', evt.item); }, onEnd: function(evt) { console.log('onEnd.around_1:', evt.item); } }); new Sortable(around_2, { group: "words", onAdd: function(evt) { console.log('onAdd.around_2:', evt.item); }, onUpdate: function(evt) { console.log('onUpdate.around_2:', evt.item); }, onRemove: function(evt) { console.log('onRemove.around_2:', evt.item); }, onStart: function(evt) { console.log('onStart.around_1:', evt.item); }, onEnd: function(evt) { console.log('onEnd.around_1:', evt.item); } }); // new Sortable(multi, { // draggable: '.add', // handle: '.add' // }); // // // [].forEach.call(multi.getElementsByClassName('add'), function (el){ // new Sortable(el, { group: 'photo' }); // }); // }); </script> </body> </html>
输入框通常都有默认值,当输入框获取信息时,那么默认值就会消失;而一旦输入框失去信息,并且没有输入新的值,那么输入框就会恢复成默认值,但如果往输入框里输入了新值,那么输入框的值就是新输入的值:
$("#id").focus(function(){$(this).val('')}).blur(function(){
var $this = $(this);
// '请搜索...'为搜索框默认值
($this.val() === '')? $this.val('请搜索...') : null;
});
浙公网安备 33010602011771号