2024-08-08

Pagination.js 是一个轻量级的 jQuery 分页插件,可以用于创建简洁美观的分页控件。以下是一个使用 Pagination.js 的示例代码:

首先,确保在页面中引入了 jQuery 和 Pagination.js 的脚本文件:




<script src="https://code.jquery.com/jquery-3.5.1.min.js"></script>
<script src="path/to/pagination.min.js"></script>

然后,在 HTML 中添加一个用于显示分页的容器:




<div id="pagination-container"></div>

最后,使用以下 JavaScript 代码来初始化分页器:




$(function() {
    $('#pagination-container').pagination({
        dataSource: new Array(100),
        callback: function(data, pagination) {
            // 这里处理页面变化时的逻辑,比如请求数据等
            console.log('当前页:', pagination.getCurrentPage());
        }
    });
});

这段代码会在页面加载完成后初始化一个分页器,并为它设置一个数据源(这里假设有 100 项数据)。当用户点击分页控件时,会触发 callback 函数,在这个函数中你可以实现请求数据的逻辑。

这只是 Pagination.js 使用的一个基本示例,实际使用时可以根据需要配置更多选项,如分页的总数、每页显示的项目数等。

2024-08-08

在HTML中,<select>标签用于创建下拉列表。在jQuery中,我们可以使用val()方法获取或设置<select>元素的值。在Thymeleaf模板中,我们可以使用th:field属性绑定模型中的变量到<select>元素。

以下是一些示例:

  1. 使用jQuery设置<select>元素的值:

HTML:




<select id="mySelect">
  <option value="option1">Option 1</option>
  <option value="option2">Option 2</option>
  <option value="option3">Option 3</option>
</select>

jQuery:




$('#mySelect').val('option2'); // 设置选中Option 2
  1. 使用Thymeleaf中的th:field绑定<select>元素到模型变量:

HTML (Thymeleaf模板):




<select th:field="*{selectedOption}">
  <option value="option1">Option 1</option>
  <option value="option2">Option 2</option>
  <option value="option3">Option 3</option>
</select>

在这个例子中,*{selectedOption}是一个表达式,它表示模型中的selectedOption属性。当表单提交时,<select>元素选中的值将被绑定到selectedOption属性。

2024-08-08

要使用jQuery实现手写签名功能,你可以使用HTML5的<canvas>元素来创建一个绘图区域,并监听鼠标事件来实现签名。以下是一个简单的实现示例:

HTML部分:




<canvas id="signature-pad" width="300" height="150" style="border:1px solid #000000;"></canvas>

jQuery和JavaScript部分:




$(document).ready(function() {
    var canvas = $('#signature-pad')[0];
    var context = canvas.getContext('2d');
    var isDrawing = false;
    var lastX = 0;
    var lastY = 0;
 
    function draw(e) {
        if (!isDrawing) return;
        context.beginPath();
        context.moveTo(lastX, lastY);
        context.lineTo(e.offsetX, e.offsetY);
        context.stroke();
        [lastX, lastY] = [e.offsetX, e.offsetY];
    }
 
    $('#signature-pad')
        .on('mousedown', function(e) {
            isDrawing = true;
            [lastX, lastY] = [e.offsetX, e.offsetY];
        })
        .on('mousemove', draw)
        .on('mouseup', function() {
            isDrawing = false;
        })
        .on('mouseleave', function() {
            isDrawing = false;
        });
});

确保在你的页面中引入了jQuery库,并根据需要调整<canvas>的大小。用户在画布上按下鼠标并移动时,就会进行签名。签名完成后,可以获取画布的数据URL来保存或者发送。

2024-08-08

第四章 事件与动画

  1. 事件处理



// 绑定点击事件
$("#btn").click(function() {
    alert("按钮被点击了!");
});
 
// 触发自定义事件
$("#myDiv").trigger("myCustomEvent");
 
// 绑定多个事件
$("#myDiv").on({
    mouseenter: function() {
        $(this).css("background-color", "yellow");
    },
    mouseleave: function() {
        $(this).css("background-color", "");
    },
    click: function() {
        $(this).css("background-color", "green");
    }
});
  1. 动画



// 淡入淡出效果
$("#myDiv").fadeIn();
$("#myDiv").fadeOut();
$("#myDiv").fadeToggle();
 
// 滑入滑出效果
$("#myDiv").slideDown();
$("#myDiv").slideUp();
$("#myDiv").slideToggle();
 
// 自定义动画
$("#myDiv").animate({
    width: "200px",
    height: "100px",
    opacity: 0.5
}, 1000);
 
// 停止动画
$("#myDiv").stop();
  1. 链式调用



// 链式调用
$("#myDiv")
    .slideDown()
    .fadeIn()
    .animate({ width: "200px" })
    .fadeOut();
  1. 事件委托



// 事件委托
$("#myTable").on("click", ".clickableRow", function() {
    $(this).toggleClass("selected");
});

第五章 AJAX和JSON

  1. AJAX请求



// 使用$.ajax发送GET请求
$.ajax({
    url: "get-data.php",
    type: "GET",
    data: { id: 1 },
    success: function(response) {
        console.log(response);
    },
    error: function(xhr, status, error) {
        console.error(error);
    }
});
 
// 使用$.ajax发送POST请求
$.ajax({
    url: "post-data.php",
    type: "POST",
    data: { name: "John", age: 30 },
    success: function(response) {
        console.log(response);
    },
    error: function(xhr, status, error) {
        console.error(error);
    }
});
  1. 使用JSONP处理跨域请求



// 使用JSONP获取远程数据
$.ajax({
    url: "http://example.com/api/data?callback=?",
    dataType: "jsonp",
    success: function(response) {
        console.log(response);
    },
    error: function(xhr, status, error) {
        console.error(error);
    }
});
  1. 使用JSON



// 解析JSON字符串
var jsonData = '{"name":"John", "age":30}';
var obj = JSON.parse(jsonData);
console.log(obj.name);
 
// 序列化JavaScript对象为JSON字符串
var jsObj = { name: "Jane", age: 25 };
var jsonString = JSON.stringify(jsObj);
console.log(jsonString);

第六章 jQuery插件开发

  1. 创建简单的jQuery插件
2024-08-08

jQuery是一个快速、简洁的JavaScript框架,它使得HTML文档 traversing, event handling, animation 和Ajax等的操作更加简单,而且它能够和现有的网站很好地兼容。

jQuery的主要特点:

  1. 快速获取文档元素,动态更改HTML元素、属性、CSS样式等。
  2. 事件处理,例如:点击、双击、鼠标移动等。
  3. 动画生成,包括普通动画和复杂动画。
  4. AJAX交互,方便地实现与服务器的异步数据交换。
  5. 跨浏览器兼容性,jQuery可以在所有现在主流的浏览器上正常工作。
  6. 插件扩展开发,有很多第三方的jQuery插件供开发者使用。
  7. 内置的Code Splitting,可以按需加载jQuery的模块。
  8. 支持链式操作,可以使代码更加精简。

jQuery的使用方法:

  1. 引入jQuery库,可以通过CDN或者下载到本地引入。
  2. 使用jQuery选择器选择元素。
  3. 对选择的元素执行操作,如:事件绑定、修改样式、动画等。

示例代码:




<!DOCTYPE html>
<html>
<head>
    <title>jQuery 示例</title>
    <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
</head>
<body>
    <button id="clickMe">点击我</button>
    <script>
        $(document).ready(function(){
            $("#clickMe").click(function(){
                alert("按钮被点击了!");
            });
        });
    </script>
</body>
</html>

在这个例子中,当页面加载完成后,jQuery会为id为"clickMe"的按钮元素绑定一个点击事件,当按钮被点击时,会弹出一个警告框。

2024-08-08

以下是使用jQuery实现全选和反选的简单示例代码:

HTML部分:




<button id="selectAll">全选</button>
<button id="selectNone">反选</button>
 
<input type="checkbox" class="item"/>
<input type="checkbox" class="item"/>
<input type="checkbox" class="item"/>

jQuery部分:




$(document).ready(function(){
  // 全选
  $('#selectAll').click(function(){
    $('.item').prop('checked', true);
  });
 
  // 反选
  $('#selectNone').click(function(){
    $('.item').prop('checked', function(i, currentStatus) {
      return !currentStatus;
    });
  });
});

确保在HTML中引入了jQuery库:




<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>

这段代码中,我们定义了两个按钮,一个用于全选,一个用于反选。每个checkbox都有相同的class名称"item"。通过点击按钮,使用jQuery的.prop()方法来改变checkbox的checked状态。

2024-08-08



// 假设我们有一个包含多个列表项的无序列表
// HTML 示例:
// <ul id="myList">
//   <li>Item 1</li>
//   <li>Item 2</li>
//   <li>Item 3</li>
//   ...
// </ul>
 
// 使用 jQuery 遍历 #myList 下的所有列表项
$('#myList li').each(function(index, element) {
    // this 指向当前的列表项 DOM 元素
    // $(this) 是当前列表项的 jQuery 对象
    console.log(index + ': ' + $(this).text());
    // 可以在这里进行其他操作
});

这段代码使用了jQuery的.each()方法来遍历指定元素集合中的每个元素。回调函数中的index参数表示当前元素的索引,element参数表示当前元素的原生DOM对象。使用$(this)可以获得当前元素的jQuery包装集,这样就可以调用jQuery提供的各种方法来操作DOM元素了。

2024-08-08

以下是一个使用jQuery实现简单标签页效果的示例代码:

HTML部分:




<div id="tabs">
  <ul>
    <li class="active"><a href="#tab1">标签页1</a></li>
    <li><a href="#tab2">标签页2</a></li>
    <li><a href="#tab3">标签页3</a></li>
  </ul>
  <div id="tab1">内容1</div>
  <div id="tab2" style="display:none;">内容2</div>
  <div id="tab3" style="display:none;">内容3</div>
</div>

CSS部分:




#tabs ul { list-style-type: none; margin: 0; padding: 0; }
#tabs ul li { float: left; margin-right: 10px; }
#tabs ul li a { padding: 5px 10px; display: block; }
#tabs ul li a.active { background-color: #ddd; }

jQuery部分:




$(document).ready(function() {
  $('#tabs ul li a').click(function() {
    $('#tabs ul li a').removeClass('active');
    $(this).addClass('active');
 
    var content_id = $(this).attr("href");
    $(content_id).siblings().hide();
    $(content_id).show();
    return false;
  });
});

这段代码实现了基本的标签页效果,点击不同的链接会显示对应的内容区域,同时更新当前激活的标签样式。

2024-08-08

以下是一个使用jQuery实现的图片轮播器的简化示例代码,模仿了路牛多样式轮播的效果:




<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>路牛轮播器</title>
<style>
  .carousel {
    position: relative;
    width: 600px;
    height: 300px;
    margin: auto;
  }
  .carousel-inner {
    position: absolute;
    width: 100%;
    height: 100%;
    overflow: hidden;
  }
  .carousel-inner img {
    width: 100%;
    height: 100%;
  }
</style>
</head>
<body>
 
<div class="carousel">
  <div class="carousel-inner">
    <img src="image1.jpg" alt="Image 1">
    <img src="image2.jpg" alt="Image 2">
    <img src="image3.jpg" alt="Image 3">
    <!-- 更多图片 -->
  </div>
</div>
 
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
<script>
$(document).ready(function() {
  let currentIndex = 0;
  const images = $('.carousel-inner img');
  const imageCount = images.length;
 
  setInterval(function() {
    images.eq(currentIndex).fadeOut(1000);
    currentIndex = (currentIndex + 1) % imageCount;
    images.eq(currentIndex).fadeIn(1000);
  }, 3000);
});
</script>
 
</body>
</html>

这段代码使用jQuery实现了图片的自动轮播效果,每隔3秒切换到下一张图片。轮播中的图片通过CSS进行样式设置,并通过jQuery的fadeIn()fadeOut()方法实现淡入淡出效果。轮播的索引通过currentIndex变量管理,并且使用% imageCount确保在最后一张图片之后继续从第一张图片开始轮播。

2024-08-08



// 假设你已经在HTML中有一个id为"myDiv"的元素
 
// 使用jQuery为元素绑定点击事件
$('#myDiv').on('click', function() {
    alert('我被点击了!');
});
 
// 使用jQuery为元素绑定鼠标悬停事件
$('#myDiv').on('mouseenter', function() {
    $(this).css('color', 'red');
});
 
// 使用jQuery为元素绑定鼠标离开事件
$('#myDiv').on('mouseleave', function() {
    $(this).css('color', 'black');
});
 
// 使用jQuery实现淡入淡出动画
$('#myDiv').fadeIn(); // 淡入
$('#myDiv').fadeOut(); // 淡出
 
// 使用jQuery实现滑入滑出动画
$('#myDiv').slideDown(); // 滑下
$('#myDiv').slideUp(); // 滑上
 
// 使用jQuery进行链式调用
$('#myDiv')
    .fadeIn()
    .fadeOut()
    .slideDown()
    .slideUp();

这段代码展示了如何使用jQuery来绑定事件处理器,以及如何应用淡入、淡出和滑入、滑出动画。链式调用允许你在一个元素上连续应用多个操作。