Web开发小知识点(二)

1.关于取余

我在Dart语言里(flutter项目)

int checkNum = (10 - 29) % 10; 那么checkNum等于1

但是在Vue项目里

const checkNum = (10 - 29) % 10;却等于-9

语言的特性不同,导致结果也不同,如果要想和Dart保持一致,则可以先对sum取余在用10减去后再取余数。

const checkNum = (10 - (sum % 10)) % 10;

2.关于position: sticky;的使用

经常在一个滑动的视图里需要固定某些组件,遇到过好几次用了这个属性没有达到预期的效果,因为可能滑动的视图不是整个屏幕,而是某一个组件,这时候要注意position: sticky;这个属性的组件的层级,不要放在外面,就放在和滚动的视图同一个层级,因为他们的父组件是一样的,sticky才好确定高度。 不然就会发生和视图一起滚动等很傻的UI展示出来。

3.关于文件的上传

一般的post接口请求时,直接一个json对象就传过去了。

export function toAuthReview(data) {
    return request({
        url: auth_review,
        method: 'post',
        data: data
    })
}


....请求的地方
var payload = { 'certType': 'BANK', 'cuNum': getCustNum() };
    toAuthReview(payload).then(response => {}

 但是在上传图片的时候,就得用formData去上传图片,如果用到formdata,就得单独对接口进行配置headers。

export function feedbackRecord(data) {
  return request({
    url: feedback_record,
    method: 'post',
    data: data,
    headers: {
      'Content-Type': 'application/x-www-form-urlencoded'
    }
  })
}

...请求的地方
 formData.append('cuNum', 111)
  formData.append('mobileNum', 2222)
  formData.append('assistanceDesc', 111)
  formData.append('assistanceType', 11)
  formData.append('assistancePage', '')
  formData.append('assistanceChoice', curSelectFeedReson)
  formData.append('imgs', list[0]) //图片
  formData.append('imgs', list[1])//图片

   feedbackRecord(formData).then(response => {});
4.textarea自动聚焦

平常点击textarea就可以聚焦了,但是有时候可能希望点击某个组件的时候,或者当他从可见变成不可见的时候,自动聚焦

1.设置属性: 自动聚焦

<textarea id="myTextarea" autofocus></textarea>

 2.当执行某个事件的时候:

function aaa{
        const textarea = document.getElementById('myTextarea');
        textarea.focus();
    }

3.关于他的其他一些属性

<textarea

class="bank_number_input"

v-model="bankNum" 与ref数据相互绑定

maxlength="23" 最大长度

rows="1" 最大行数

@input="filterInput"//对输入进行处理

autofocus //聚焦

@keydown="handleKeyDown"//对按键事件进行处理

></textarea>

function filterInput(event) {
  const inputValue = event.target.value;//获取当前输入框的值
  const separator = ' '; 
  const positions = [3, 6, 10, 14, 17]; //指定位置插入空格
  let filteredValue = inputValue.replace(/\D/g, ''); //只许输入数字
  for (let i = 0; i < positions.length; i++) {//插入空格
    const position = positions[i];
    if (position <= filteredValue.length) {
      filteredValue = filteredValue.slice(0, position + i) + separator + filteredValue.slice(position + i);
    }
  }
  event.target.value = filteredValue; //对输入框进行赋值
  
}

因为往输入框插入了空格,所以无法正常删除,于是


function handleKeyDown(event) {
  if (event.key === 'Backspace') {
    const textarea = event.target;
    const caretPosition = textarea.selectionStart;
    const inputValue = textarea.value;

    if (inputValue[caretPosition - 1] === ' ') {
      event.preventDefault(); // 阻止默认的删除行为
      textarea.value = inputValue.slice(0, caretPosition - 1) + inputValue.slice(caretPosition);
      textarea.selectionStart = caretPosition - 1; // 更新光标位置
      textarea.selectionEnd = caretPosition - 1;
    }
  }
}
5.关于三方组件的自定义属性

今天在使用element的el-dialog组件的时候,发现很多属性设置不了,满足不了业务的需求。

后面问了同事,才知道可以用以下方法去解决

1.网页的查看源码

 这样就可以看到他里面实际的css样式格式。

2.接下来就是重写他的样式,如果直接写是无法生效的,

需要:deep()才行,例如

3.查看是否生效

刷新后,检查UI,再查看样式是否生效了。

 6.关于固定顶部,然后下面的高度也固定但是可以滑动,并且滑动不会滑动整个父组件

第一步:父组件

.all_con {
  width: 100%;
  height: calc(100vh - 3.5rem);
  display: flex;
  overflow: hidden;
  flex-direction: column;
}

确定高度,并且不让滑动

第二步:顶部的组件

.top_sticky_con {
    width: 100%;
    display: flex;
    flex: 0;
    flex-direction: column;
    opacity: 1;
  }

设置flex:0;

第三步:

.list_con {
  width: 100%;
  display: flex;
  flex-direction: column;
  flex: 1;
  overflow-y: auto;
}

设置他的flex为1,占据剩余高度,并且可以滑动。

实际效果

7.textarea和input的palceHolder样式设置无效

 input::-webkit-input-placeholder{
    
    }/*webkit 内核浏览器*/
    input::-moz-placeholder{
 
    }/*Mozilla Firefox 19+*/
    input:-moz-placeholder{
  
    }/*Mozilla Firefox 4 to 18*/
    input:-ms-input-placeholder{
 
    }
 
    /* 设置textarea框提示内容的样式 */
    textarea::-webkit-input-placeholder{
      text-align: left;
      line-height: 20px;
    }/*webkit 内核浏览器*/
    textarea::-moz-placeholder{
      text-align: left;
      line-height: 20px;
    }/*Mozilla Firefox 19+*/
    textarea:-moz-placeholder{
      text-align: left;
      line-height: 20px;
    }/*Mozilla Firefox 4 to 18*/
    textarea:-ms-input-placeholder{
      text-align: left;
      line-height: 20px;}

  • 12
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Java Web开发是指使用Java技术进行Web应用程序开发。以下是Java Web开发的一些知识点: 1. Servlet:Java Servlet是一种运行在Web服务器上的Java程序,用于处理HTTP请求和响应。它是Java Web开发的基础。 2. JSP:Java Server Pages是一种动态Web页面技术,它允许在HTML页面中嵌入Java代码。JSP页面在服务器端被解析和编译成Servlet。 3. Spring框架:Spring是一个开源的Java框架,用于构建企业级应用程序。它提供了许多功能,包括依赖注入、面向切面编程、数据访问和Web开发。 4. Hibernate框架:Hibernate是一个开源的Java框架,用于将Java对象映射到关系数据库中。它提供了一种简单的方法来处理数据库操作,避免了编写大量的JDBC代码。 5. RESTful Web服务:RESTful Web服务是一种基于HTTP协议的Web服务,它使用标准的HTTP方法(如GET、POST、PUT和DELETE)来实现对资源的操作。 6. Maven:Maven是一个开源的项目管理工具,用于构建、测试和部署Java应用程序。它提供了一种简单的方法来管理项目依赖关系和构建过程。 7. Tomcat服务器:Tomcat是一个开源的Web服务器,用于运行Java Web应用程序。它支持Servlet和JSP技术,并提供了一个简单的方法来部署和管理Web应用程序。 ```java // 以下是一个简单的Servlet示例 import java.io.*; import javax.servlet.*; import javax.servlet.http.*; public class HelloWorld extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html"); PrintWriter out = response.getWriter(); out.println("<html>"); out.println("<head>"); out.println("<title>Hello World</title>"); out.println("</head>"); out.println("<body>"); out.println("<h1>Hello World!</h1>"); out.println("</body>"); out.println("</html>"); } } ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

&岁月不待人&

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值