热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

手把手教你如何玩转HTML中有意思的技术

自己并非一个前端开发工程师,但是呢,也对前端的某些酷炫的小玩意还是觉得非常有意思的,所以,自己也将自己的一些前端经历进行分享来互相进行学习。

自己并非一个前端开发工程师,但是呢,也对前端的某些酷炫的小玩意还是觉得非常有意思的,所以,自己也将自己的一些前端经历进行分享来互相进行学习。



文章目录







      • textarea自适应



        • 步骤

        • 效果(类似input框的结构达到自适应)



      • 富文本编辑器



        • 步骤:

        • 如何获取富文本编辑器中的内容

        • 效果



      • 漂亮的错误页面



        • 步骤

        • 效果



      • 日期控件



        • layDate(个人推荐)



          • 步骤

          • 效果



        • Bootstrap的DateTimePicker



          • 步骤

          • 效果



        • 前端传时间后端实体如何绑定为Date类型属性



          • 处理方式





      • 持续更新,欢迎关注







textarea自适应

描述:一般textarea都是要设置多少行多少列,然而,有时候我们需要进行内容的自适应的高度,这样看起来更加的友好,而减少空白内容。那么就可以按照如下的步骤来进行实现。


步骤



  1. 编写css

/* 自定义textarea的类样式 */
.autoTextArea
{
display:
block;
margin:0
auto;
overflow:
hidden;
width:
750px;
font-size:
14px;
height:
23px;
line-height:
24px;
padding:2px;
}
textarea
{
outline:0 none;
border-color:
rgba(82,
168,
236,
0.8);
box-shadow:
inset
0
1px
3px
rgba(0,
0,
0,
0.1),
0
0
8px
rgba(82,
168,
236,
0.6);
}


  1. 添加JS处理文件

/**
1. 文本框根据输入内容自适应高度
2. @param {HTMLElement} 输入框元素
3. @param {Number} 设置光标与输入框保持的距离(默认0)
4. @param {Number} 设置最大高度(可选)
*/
var autoTextarea = function (elem, extra, maxHeight) {
extra = extra || 0;
var isFirefox = !!document.getBoxObjectFor || 'mozInnerScreenX' in window,
isOpera = !!window.opera && !!window.opera.toString().indexOf('Opera'),
addEvent = function (type, callback) {
elem.addEventListener ?
elem.addEventListener(type, callback, false) :
elem.attachEvent('on' + type, callback);
},
getStyle = elem.currentStyle ? function (name) {
var val = elem.currentStyle[name];
if (name === 'height' && val.search(/px/i) !== 1) {
var rect = elem.getBoundingClientRect();
return rect.bottom - rect.top -
parseFloat(getStyle('paddingTop')) -
parseFloat(getStyle('paddingBottom')) + 'px';
};
return val;
} : function (name) {
return getComputedStyle(elem, null)[name];
},
minHeight = parseFloat(getStyle('height'));
elem.style.resize = 'none';
var change = function () {
var scrollTop, height,
padding = 0,
style = elem.style;
if (elem._length === elem.value.length) return;
elem._length = elem.value.length;
if (!isFirefox && !isOpera) {
padding = parseInt(getStyle('paddingTop')) + parseInt(getStyle('paddingBottom'));
};
scrollTop = document.body.scrollTop || document.documentElement.scrollTop;
elem.style.height = minHeight + 'px';
if (elem.scrollHeight > minHeight) {
if (maxHeight && elem.scrollHeight > maxHeight) {
height = maxHeight - padding;
style.overflowY = 'auto';
} else {
height = elem.scrollHeight - padding;
style.overflowY = 'hidden';
};
style.height = height + extra + 'px';
scrollTop += parseInt(style.height) - elem.currHeight;
document.body.scrollTop = scrollTop;
document.documentElement.scrollTop = scrollTop;
elem.currHeight = parseInt(style.height);
};
};
addEvent('propertychange', change);
addEvent('input', change);
addEvent('focus', change);
change();
};


  1. 添加textarea标签(记住要添加class样式和引入(1)中的css和(2)中的JS文件)




  1. 在JSP页面中添加textarea自适应的触发监听




效果(类似input框的结构达到自适应)

类似input框的结构


富文本编辑器

描述:有时候,我们需要更加美观的编辑器,所以,富文本器是非常常用的功能模块。


步骤:



  1. 添加富文本相关的主题和样式以及JS文件
    https://download.csdn.net/download/cs_hnu_scw/10818060

  2. 引入相关的内容






  1. 添加textarea标签




  1. 添加富文本样式JS



如何获取富文本编辑器中的内容

//通过name属性获取对应的textarea标签
var areas = document.getElementsByName("desc");
//再通过for循环进行获取
for(var i=0 ; i //得到每个富文本编辑器的内容
var cOntent= areas[i].value
}

效果

在这里插入图片描述


漂亮的错误页面

描述:我们在开发中,都会有一个统一的错误处理的页面,这个也是非常重要的。


步骤



  1. 编写CSS

/*错误页面的样式 by scw */
html, body {margin:0px;height:100%; font-family:"微软雅黑";}
i{ font-style:normal;}
.pr{ position:relative;}
.pa{ position:absolute;}
.fl{ float:left;}
.mb15{ margin-bottom:15px;}
.error_new_bg { height: 100%; width: 100%; }
.error_new_content { width: 100%; height: 100%; text-align: center; margin: 0 auto; /*background: url(/error.png) no-repeat center center;*/ min-width: 1000px; }
.error_new { top: 50%; left: 50%; margin: -185px 0 0 -500px; height: 371px; width: 1000px; }
.error_new_left { width: 56%; text-align: right; -webkit-animation: desc_link ease-in-out 1.5s infinite }
@-webkit-keyframes desc_link { 0% {
-webkit-transform:translateY(0);
-ms-transform:translateY(0);
-ms-transform:translateY(0);
-moz-transform:translateY(0);
transform:translateY(0);
}
50% {
-webkit-transform:translateY(1em);
-ms-transform:translateY(1em);
-ms-transform:translateY(1em);
-moz-transform:translateY(1em);
transform:translateY(1em);
}
100% {
-webkit-transform:translateY(0);
-ms-transform:translateY(0);
-ms-transform:translateY(0);
-moz-transform:translateY(0);
transform:translateY(0);
}
}
.error_new_right { width: 40%; text-align: left; margin-top:7%; margin-left: 4%; vertical-align: middle }
.error_new_right_btn { width: 150px; height: 46px; background: #F96900; display: inline-block; color: #fff; line-height: 46px; border-radius: 3px; text-align: center; z-index: 10 }
.error_new_right_btn a { color: #fff; text-align: center; font-size: 16px; width: 150px; height: 46px; display: inline-block; }
.error_detail { margin:0px; height: auto; }
.error_detail .error_p_title{ font-size: 28px; color: #fff;}
.error_detail .error_p_con{ font-size:14px; margin-top:10px; line-height: 20px; color:#fff;}
.type-2 { background: #F96900; text-indent: 0; height: 46px; width: 150px; border-radius: 3px; }
.type-3 { background: #F96900; text-indent: 0; height: 46px; width: 150px; border-radius: 3px; }
.type-2 i { position: absolute; width: 150px; height: 46px; line-height: 46px; display: block; top: 0; opacity: 1; left: 0; box-sizing: border-box; -moz-box-sizing: border-box; -webkit-transition: all 0.3s linear; transition: all 0.3s linear; text-align: center; color: #ffe8e8; border-radius: 3px; }
.type-2 i:nth-of-type(2), .type-2 i:nth-of-type(3) { -webkit-transform: rotateY(-90deg); transform: rotateY(-90deg); transform-origin: 0 0; -webkit-transform-origin: 0 0; clip: rect(0,60px,9999px,0); border-shadow: 4px; }
.type-2 i:nth-of-type(3) { transform-origin: 100% 100%; -webkit-transform-origin: 100% 100%; -webkit-transform: rotateY(90deg); transform: rotateY(90deg); clip: rect(0,9999px,9999px,60px); border-shadow: 4px; }
.type-2:hover i:nth-of-type(2), .type-2:hover i:nth-of-type(3) { -webkit-transform: rotateY(0); transform: rotateY(0); background: #fff; color: #fff; }
.type-2:hover i:first-of-type { background: #fff; }
.type-2 i:last-of-type { opacity: 0; background: #fff; color: #ff464b; -webkit-transition: none; transition: none; }
.type-3 i:last-of-type { color: #F96900; }
.type-2:hover i:last-of-type { opacity: 1; -webkit-transition: all 0.05s linear 0.3s; transition: all 0.05s linear 0.3s; }


  1. 编写jsp页面









哎呦~ 老司机居然累倒了!


※ 别急,工程师正在紧急处理,马上就好。


※ 二当家的开发人员,会努力修复Bug!


※ 请您耐心等待!





返回登录
返回登录
返回登录
返回登录









  1. 错误页面中对应的图片
    在这里插入图片描述


效果

在这里插入图片描述

感谢这位博主http://www.jfinal.com/share/824的参考


日期控件

描述:我们在界面中避免不了要使用漂亮的日期控件,那么我给大家介绍两款自己觉得还不错的控件。


layDate(个人推荐)

官网地址:https://www.layui.com/laydate/


步骤


  1. 进入上面的官网,进行下载压缩包
    在这里插入图片描述

  2. 编写页面
    如:

  3. 引入laydate的css和js文件(这个就和正常的引入方法一样)

  4. 编写JS绑定input标签
    如:


效果

在这里插入图片描述
备注:还有很多好看的样式,都可以去官网查看哦!


Bootstrap的DateTimePicker


步骤

官网:
http://www.bootcss.com/p/bootstrap-datetimepicker/demo.htm



  1. 进入官网,下载压缩包
    在这里插入图片描述

  2. 引入相关的css和js文件

  3. 编写日期控件的标签
    如:




  1. 绑定标签的js控制
    如:



效果

在这里插入图片描述
备注:还有很多好看的样式,都可以去官网查看哦!


前端传时间后端实体如何绑定为Date类型属性

描述:我们在前端使用了这些插件后,一般是string类型,但是我们Java程序一般都是Date类型的时间,那么如何实现绑定处理呢?


处理方式

只需要在对应的实体的属性上添加如下的代码即可转换:

@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")

比如:
在这里插入图片描述

注意: 要保证前端和后端的格式保持一致哦。。所以前端的日期样式都是需要根据需求进行控制的。另外的话,还有其他的方法可以进行处理,但是上面的是最为简单的方式。
可以查看改博客:https://www.cnblogs.com/zizaiwuyou/p/String_Date.html


持续更新,欢迎关注



推荐阅读
  • 使用圣杯布局模式实现网站首页的内容布局
    本文介绍了使用圣杯布局模式实现网站首页的内容布局的方法,包括HTML部分代码和实例。同时还提供了公司新闻、最新产品、关于我们、联系我们等页面的布局示例。商品展示区包括了车里子和农家生态土鸡蛋等产品的价格信息。 ... [详细]
  • Voicewo在线语音识别转换jQuery插件的特点和示例
    本文介绍了一款名为Voicewo的在线语音识别转换jQuery插件,该插件具有快速、架构、风格、扩展和兼容等特点,适合在互联网应用中使用。同时还提供了一个快速示例供开发人员参考。 ... [详细]
  • 本文介绍了lua语言中闭包的特性及其在模式匹配、日期处理、编译和模块化等方面的应用。lua中的闭包是严格遵循词法定界的第一类值,函数可以作为变量自由传递,也可以作为参数传递给其他函数。这些特性使得lua语言具有极大的灵活性,为程序开发带来了便利。 ... [详细]
  • 使用chrome编辑器实现网页截图功能的方法
    本文介绍了在chrome浏览器中使用编辑器实现网页截图功能的方法。通过在地址栏中输入特定命令,打开控制台并调用命令面板,用户可以方便地进行网页截图操作。 ... [详细]
  • Unity3D引擎的体系结构和功能详解
    本文详细介绍了Unity3D引擎的体系结构和功能。Unity3D是一个屡获殊荣的工具,用于创建交互式3D应用程序。它由游戏引擎和编辑器组成,支持C#、Boo和JavaScript脚本编程。该引擎涵盖了声音、图形、物理和网络功能等主题。Unity编辑器具有多语言脚本编辑器和预制装配系统等特点。本文还介绍了Unity的许可证情况。Unity基本功能有限的免费,适用于PC、MAC和Web开发。其他平台或完整的功能集需要购买许可证。 ... [详细]
  • 本文介绍了CSS样式属性text-overflow、overflow、white-space、width的使用方法和效果。通过设置这些属性,可以实现文本溢出省略号、隐藏溢出内容、禁止换行以及限制元素宽度等效果。详细讲解了每个属性的作用和用法,以及常见的应用场景和注意事项。对于前端开发者来说,掌握这些CSS样式属性的使用方法,能够更好地实现页面布局和文本显示效果。 ... [详细]
  • 动量|收益率_基于MT策略的实战分析
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了基于MT策略的实战分析相关的知识,希望对你有一定的参考价值。基于MT策略的实战分析 ... [详细]
  • CSS3选择器的使用方法详解,提高Web开发效率和精准度
    本文详细介绍了CSS3新增的选择器方法,包括属性选择器的使用。通过CSS3选择器,可以提高Web开发的效率和精准度,使得查找元素更加方便和快捷。同时,本文还对属性选择器的各种用法进行了详细解释,并给出了相应的代码示例。通过学习本文,读者可以更好地掌握CSS3选择器的使用方法,提升自己的Web开发能力。 ... [详细]
  • 本文介绍了C#中数据集DataSet对象的使用及相关方法详解,包括DataSet对象的概述、与数据关系对象的互联、Rows集合和Columns集合的组成,以及DataSet对象常用的方法之一——Merge方法的使用。通过本文的阅读,读者可以了解到DataSet对象在C#中的重要性和使用方法。 ... [详细]
  • 本文介绍了使用PHP实现断点续传乱序合并文件的方法和源码。由于网络原因,文件需要分割成多个部分发送,因此无法按顺序接收。文章中提供了merge2.php的源码,通过使用shuffle函数打乱文件读取顺序,实现了乱序合并文件的功能。同时,还介绍了filesize、glob、unlink、fopen等相关函数的使用。阅读本文可以了解如何使用PHP实现断点续传乱序合并文件的具体步骤。 ... [详细]
  • 1,关于死锁的理解死锁,我们可以简单的理解为是两个线程同时使用同一资源,两个线程又得不到相应的资源而造成永无相互等待的情况。 2,模拟死锁背景介绍:我们创建一个朋友 ... [详细]
  • 后台获取视图对应的字符串
    1.帮助类后台获取视图对应的字符串publicclassViewHelper{将View输出为字符串(注:不会执行对应的ac ... [详细]
  • 《数据结构》学习笔记3——串匹配算法性能评估
    本文主要讨论串匹配算法的性能评估,包括模式匹配、字符种类数量、算法复杂度等内容。通过借助C++中的头文件和库,可以实现对串的匹配操作。其中蛮力算法的复杂度为O(m*n),通过随机取出长度为m的子串作为模式P,在文本T中进行匹配,统计平均复杂度。对于成功和失败的匹配分别进行测试,分析其平均复杂度。详情请参考相关学习资源。 ... [详细]
  • 本文整理了常用的CSS属性及用法,包括背景属性、边框属性、尺寸属性、可伸缩框属性、字体属性和文本属性等,方便开发者查阅和使用。 ... [详细]
  • 我用Tkinter制作了一个图形用户界面,有两个主按钮:“开始”和“停止”。请您就如何使用“停止”按钮终止“开始”按钮为以下代码调用的已运行功能提供建议 ... [详细]
author-avatar
快乐生鹤
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有