Element滚动条自动滚动到指定位置

效果演示,效果包含了下列两个案例
在这里插入图片描述

/**
 *  核心工具scrollUtil.ts
 * 
 *  @author 达瓦里氏
 */
interface Position {
    x: number | undefined
    y: number | undefined
}

/**
 * 滚动到选中项
 *
 * @param wrap 外层容器
 * @param active 选中项
 * @param cost 动画时长(毫秒)默认500毫秒
 */
export const elScrollTo = (
    wrap: HTMLDivElement | undefined,
    active: Element | null | undefined,
    margin?: number,
    cost?: number
): Position => {
    const inner = wrap?.children[0]
    if (!wrap || !active || !inner) return { x: undefined, y: undefined }
    const wrapRect = wrap.getBoundingClientRect()
    const innerRect = inner.getBoundingClientRect()
    const activeRect = active.getBoundingClientRect()
    const toPosition = getToPosition(wrapRect, innerRect, activeRect, margin)
    if (toPosition.x != undefined || toPosition.y != undefined) {
        animationFrame(toPosition, wrap, cost)
    }
    return toPosition
}

/**
 * 滚动动画
 *
 * @param to 目标坐标
 * @param wrap 外层容器
 * @param cost 动画时长(毫秒)默认500毫秒
 */
export const animationFrame = (
    to: Position,
    wrap: HTMLDivElement | undefined,
    cost = 500
) => {
    if (!wrap) return
    const wrapRect = wrap.getBoundingClientRect()
    const beginTime = Date.now()
    const loop =
        window.requestAnimationFrame || ((func) => setTimeout(func, 16))
    const frame = () => {
        const progress = (Date.now() - beginTime) / cost
        if (progress < 1) {
            if (to.x != undefined) {
                if (to.x < wrapRect.left) {
                    wrap.scrollLeft =
                        wrap.scrollLeft -
                        (wrap.scrollLeft - to.x) * inOutCubic(progress)
                } else {
                    wrap.scrollLeft =
                        wrap.scrollLeft +
                        (to.x - wrap.scrollLeft) * inOutCubic(progress)
                }
            }
            if (to.y != undefined) {
                if (to.y < wrapRect.top) {
                    wrap.scrollTop =
                        wrap.scrollTop -
                        (wrap.scrollTop - to.y) * inOutCubic(progress)
                } else {
                    wrap.scrollTop =
                        wrap.scrollTop +
                        (to.y - wrap.scrollTop) * inOutCubic(progress)
                }
            }
            loop(frame)
        } else {
            if (to.x != undefined) wrap.scrollLeft = to.x
            if (to.y != undefined) wrap.scrollTop = to.y
        }
    }
    loop(frame)
}

/**
 * 取得目标坐标
 */
const getToPosition = (
    wrapRect: DOMRect,
    innerRect: DOMRect,
    activeRect: DOMRect,
    margin = 0
): Position => {
    let x, y
    if (activeRect.left - margin < wrapRect.left) {
        x = activeRect.left - innerRect.left - margin
    } else if (activeRect.right + margin > wrapRect.right) {
        x =
            activeRect.right -
            wrapRect.right +
            wrapRect.left -
            innerRect.left +
            margin
    }
    if (activeRect.top - margin < wrapRect.top) {
        y = activeRect.top - innerRect.top - margin
    } else if (activeRect.bottom + margin > wrapRect.bottom) {
        y =
            activeRect.bottom -
            wrapRect.bottom +
            wrapRect.top -
            innerRect.top +
            margin
    }
    return { x, y }
}

const cubic = (val: number) => Math.pow(val, 3)

const inOutCubic = (val: number) =>
    val < 0.5 ? cubic(val * 2) / 2 : 1 - cubic((1 - val) * 2) / 2
<!-- 简单案例 -->
<script setup lang="ts">
import { useMenu } from '@/stores/menu'
import { ElScrollbar } from 'element-plus'
import { nextTick, onMounted, onUnmounted, ref, watch } from 'vue'
import { useRoute } from 'vue-router'
import MenuItem from './MenuItem.vue'
import { elScrollTo } from '@/utils/scrollUtil'

const scrollbarRef = ref<InstanceType<typeof ElScrollbar>>()
const route = useRoute()
const menu = useMenu()

const scrollToActive = () => {
    nextTick(() => {
        const wrap = scrollbarRef.value?.wrapRef
        const active = wrap?.querySelector('.is-active')
        elScrollTo(wrap, active)
    })
}

onMounted(() => {
    scrollToActive()
    window.addEventListener('resize', scrollToActive)
})
onUnmounted(() => {
    window.removeEventListener('resize', scrollToActive)
})
watch(
    () => route.path,
    () => {
        scrollToActive()
    }
)
</script>

<template>
	<el-scrollbar ref="scrollbarRef">
		<el-menu :default-active="$route.path">
			<MenuItem :menus="menu.menus" />
		</el-menu>
	</el-scrollbar>
</template>
<!-- 横向滚动条案例 -->
<script setup lang="ts">
import router from '@/router'
import { useTab } from '@/stores/tab'
import { ElScrollbar } from 'element-plus'
import { nextTick, onMounted, onUnmounted, ref, watch } from 'vue'
import { useRoute } from 'vue-router'
import { elScrollTo, animationFrame } from '@/utils/scrollUtil'

const innerRef = ref<HTMLDivElement>()
const scrollbarRef = ref<InstanceType<typeof ElScrollbar>>()
const wrapRef = ref<HTMLDivElement>()
const scrollLeft = ref<number>(0)
const scrollMax = ref<number>(0)
const tab = useTab()
const route = useRoute()

// 监听鼠标滚轮滚动
const handleScroll = (e: any) => {
    const wheelDelta = e.wheelDelta || -e.deltaY * 40
    if (wrapRef.value) {
        wrapRef.value.scrollLeft = wrapRef.value.scrollLeft - wheelDelta
        scrollLeft.value = wrapRef.value.scrollLeft
    }
}

const handleScrollTo = (x: number) => {
    if (wrapRef.value) {
        animationFrame({ x: x, y: undefined }, wrapRef.value)
        scrollLeft.value = x
    }
}

const scrollToActive = () => {
    nextTick(() => {
        scrollMax.value = 0
        wrapRef.value = scrollbarRef.value?.wrapRef
        const clientWidth = innerRef.value?.clientWidth
        const scrollWidth = innerRef.value?.scrollWidth
        if (clientWidth && scrollWidth) {
            scrollMax.value = scrollWidth - clientWidth
            const active = wrapRef.value?.querySelector('.is-checked')
            const position = elScrollTo(wrapRef.value, active, 10)
            scrollLeft.value =
                position.x != undefined
                    ? position.x
                    : wrapRef.value?.scrollLeft || 0
        }
    })
}

onMounted(() => {
    scrollToActive()
    window.addEventListener('resize', scrollToActive)
})
onUnmounted(() => {
    window.removeEventListener('resize', scrollToActive)
})
watch(
    () => route.path,
    () => {
        scrollToActive()
    }
)
</script>

<template>
    <div class="tabs-container">
    	<!-- 移动到最左侧 -->
        <el-button
            v-if="scrollMax > 0"
            :icon="DArrowLeft"
			:disabled="scrollLeft == 0"
			@click="handleScrollTo(0)"
        />
        <div class="scrollbar-container">
            <el-scrollbar ref="scrollbarRef" @wheel.prevent="handleScroll">
                <div ref="innerRef" class="scrollbar-content">
                    <el-check-tag
                        v-for="(item, index) in tab.tabs"
                        :key="index"
                        :checked="item.path == $route.path"
                        @change="router.push(item.path)"
                    >
                        <span>{{ item.meta.title }}</span>
                    </el-check-tag>
                </div>
            </el-scrollbar>
        </div>
    	<!-- 移动到最右侧 -->
        <el-button
            v-if="scrollMax > 0"
            :icon="DArrowRight"
			:disabled="scrollLeft >= scrollMax"
			@click="handleScrollTo(scrollMax)"
        />
    </div>
</template>

<style scoped lang="scss">
.tabs-container {
    flex: auto;
    width: 0;
    display: flex;
    align-items: center;
    justify-content: space-between;
}
.scrollbar-container {
    overflow: hidden;
    width: 100%;
}
// 滚动条横向
.scrollbar-content {
    display: flex;
}
// 隐藏横向滚动条
:deep(.el-scrollbar__bar.is-horizontal) {
    height: 0 !important;
}
</style>
<!-- 高级应用平面移动 -->
暂时没有场景需要,所以没有写,有兴趣都同学可以尝试一下!
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
0、ANDROID常用类库说明 6 1、ANDROID文件系统与应用程序架构 7 1.1、ANDROID 文件系统 7 1.2、ANDROID应用程序架构 9 2、ANDROID应用程序结构 11 2.1、ACTIVITY 12 2.1.1、概述 12 2.1.2、Activity的生命周期 15 2.1.3、Activity 的创建 16 2.1.4、Activity 的跳转(含Bundle传值) 17 2.1.5.Actvity 堆栈 18 2.1.6、Intent对象调用Activity实例 19 2.1.7、Activity透明 21 2.1.8、一次性关闭所有的Activity 22 2.1.9、PreferenceActivity 用法 22 2.1.10、Dialog风格的Activity 23 2.1.11、横竖屏切换不销毁当前Activity 23 2.2、INTENT RECEIVER 25 2.3、SERVICE 26 2.3.1、什么是Service 26 2.3.2、如何使用Service 27 2.3.3、Service的生命周期 32 2.3.4、判断服务开启状态 33 2.3.5、获取启动的服务 34 2.4、CONTENT PROVIDER 35 3、ANDROID UI LAYOUT 35 3.1、概述 35 3.2、线性布局(LINEAR LAYOUT) 36 3.3、相对布局(RELATIVE LAYOUT) 39 3.4、TABLELAYOUT 40 3.5、ABSOLUTELAYOUT 47 4、ANDROID UI 控件 48 4.1、IMAGEBUTTON 48 4.1.1、图案填充问题 48 4.2、TEXTVIEW 49 4.2.1、动态滚动 49 4.3、EDITTEXT 49 4.3.1、光标选择 49 4.4、TITLEBAR 50 4.4.1、非全屏状态下不显示title标题栏 50 4.4.2、标题栏进度指示器 50 4.4.3、titleBar 高级实现方法(更美观) 51 4.4.4、获取标题栏和状态栏高度 57 4.4.5、标题栏显示简单的进度框 57 4.5、MENU 58 4.5.1、简单的代码 58 4.5.2、menu实现的两种方法 58 4.5.3、自定义MENU背景 62 4.5.4、触发menu 64 4.5.5、Context Menu和Options Menu菜单的区别 64 4.5.6、Context menus for expandable lists 64 4.6、LISTVIEW 66 4.6.1、ListView自定义分割线 66 4.6.2、LIST例一 66 4.6.3、LIST例二 76 4.6.4、LIST例三 80 4.6.5、ListView 被选中item的背景颜色 82 4.6.6、ListView自定义背景颜色 83 4.6.7、List长按与短按消息映射 84 4.6.8、点击ListView改变背景色 87 4.6.9、自动滚动ListView 88 4.6.10、BaseExpandableListAdapter例 88 4.6.11、列表视图(List View) 96 4.6.12、NoteList 99 4.7、TAB与TABHOST 106 4.8、RATINGBAR 110 4.8.1、例一 110 4.8.2、例二 112 4.9、DATE/TIME SET 115 4.9.1、DatePicker/TimePicker 115 4.9.2、DatePickerDialog/TimePickerDialog 119 4.10、WEBVIEW 120 4.10.1、WebView的使用 120 4.11、SCROLLVIEW 121 4.11.1、ScrollView的使用 121 4.12、GRIDVIEW 124 4.12.1、GridView的使用 124 4.13、GAMEVIEW 127 4.13.1、显示到一个布局中 127 4.14、TOASTE 128 4.14.1、短时间显示 128 4.14.2、长时间显示 128 4.15、对话框 128 4.15.1、简单的对话框: 128 4.15.2、包含两个按钮的对话框 128 4.15.3、三个按钮的提示框 129 4.15.4、包含输入的dlg 131 4.15.5、圆形进度框 133 4.15.6、AlertDialog.Builder 133 4.15.7、模式对话框 134 4.16、拖动BUTTON获得位置 135 5、ANDROID UI 美化 137 5.1、简单美化BUTTON、IMAGEBUTTON、TEXTVIEW等控件 137 5.2、BUTTON美化案例☆ 139 5.3、IMAGEBUTTON 按下时的动画效果 142 5.4、滚动条显示与隐藏 143 5.5、LISTVIEW 与 SCROLLVIEW 解决办法 144 方法一:(重写ListView) 144 方法二: 150 5.6、3D魔方 151 6、ANDROID UI 动画 160 6.1、四种2D动画 160 6.1.1、透明度控制动画效果 alpha 160 6.1.2、旋转动画效果 rotate 161 6.1.3、尺寸伸缩动画效果 scale 162 6.1.4、位置转移动画效果 translate 163 6.1.5、四种动画效果的调用 164 7、异步调用 167 开辟一个线程: 167 THREAD: 168 HANDER 170 TIMER 173 ANDROID 界面刷新 174 MESSAGE HANDER 175 用法: 175 线程与子线程调用MessageHander 177 Messagehandler实例 177 8、数据存储与读取 179 1. PREFERENCES 179 2. FILES 180 3. DATABASES 180 4. NETWORK 183 5、CONTENTPROVIDER 183 6、执行SQL语句进行查询 188 用法1 188 其它: 188 详解: 189 查看SQLITE表格内容 192 9、常用功能的实现 193 9.1、获取手机型号以及系统版本号 193 9.2、更改应用程序图标 194 9.3、迎合不同的手机分辨率 194 9.4.ANDROID屏幕适应的四个原则 195 9.5、ANDROID常用单位 196 9.6、取得屏幕信息 197 9.7、横竖屏 197 9.8、程序完全全屏 200 9.8.1锁屏锁键盘 200 9.9、程序的开机启动 201 9.10、动态START页面 208 9.11、彻底退出当前程序 212 9.12、获取应用程序的名称,包名,版本号和图标 212 9.13、调用ANDROID INSTALLER 安装和卸载程序 215 9.14、后台监控应用程序包的安装&卸载 216 9.15、显示应用详细列表 224 9.16、寻找应用 224 9.17、注册一个BROADCASTRECEIVER 225 9.18、打开另一程序 225 9.19、播放默认铃声 225 9.20、设置默认来电铃声 226 9.21、位图旋转 227 9.22、手机震动控制 228 9.23、SENSOR2D感应实例 228 9.24、运用JAVA MAIL包实现发GMAIL邮件 230 9.26、ANDROID键盘响应 236 9.27、后台监听某个按键 238 9.28、VECTOR用法 239 9.29、CURSOR 242 9.30、把一个字符串写进文件 244 9.31、把文件内容读出到一个字符串 245 9.32、扫描WIFI热点演示实例教程 246 9.33、调用GOOGLE搜索 249 9.34、调用浏览器 载入某网址 249 9.35、获取 IP地址 249 9.36、从输入流中获取数据并以字节数组返回 250 9.37、通过ANDROID 客户端上传数据到服务器 251 9.38、文件下载类 255 9.39、下载文件的进度条提示 263 9.40、通过HTTPCLIENT从指定SERVER获取数据 265 9.41、通过FTP传输文件,关闭UI获得返回码 266 9.42、激活JAVASCRIPT打开内部链接 266 9.43、清空手机COOKIES 267 9.44、检查SD卡是否存在并且可以写入 267 9.45、获取SD卡的路径和存储空间 268 9.46、将程序安装到SD卡 268 9.47、创建一个SD映像 269 9.48、查看手机内存存储 269 9.49、在模拟器上调试GOOGLE MAPS 271 9.50、建立GPRS连接 273 9.51、获取手机位置 274 9.5* 获得经纬度,地名标注在地图上 274 9.52、获得两个GPS坐标之间的距离 276 9.53、通过经纬度显示地图 277 9.54、路径规划 277 9.55、将坐标传递到GOOGLE MAP并显示 277 9.56、获取本机电话号码 280 9.57、获得手机联系人 280 9.58、2.0以上版本查询联系人详细信息 282 9.59、2.0以上版本添加联系人 285 9.60、拨打电话 287 9.61、发送SMS、MMS 287 9.62、监听电话被呼叫状态 288 9.63、监听要拨打的电话(可以后台进行修改号码) 290 9.64、后台监听短信内容 291 9.65、删除最近收到的一条短信 292 9.66、调用发短信的程序 293 9.67、后台发送短信 293 9.68、调用发送彩信程序 294 9.69、发送EMAIL 294 9.70、播放多媒体 295 9.71、控制音量 296 9.72、定义CONTENTOBSERVER,监听某个数据表 302 9.73、打开照相机 303 9.74、从GALLERY选取图片 303 9.75、打开录音机 303 9.76、语音朗读 303 9.77、手机获取视频流显示在电脑上 305 9.78、蓝牙的使用 313 9.79、一个很好的加密解密字符串 316 9.80、DRAWABLE、BITMAP、BYTE[]之间的转换 318 9.81、高循环效率的代码 320 9.82、给模拟器打电话发短信 321 9.83、加快模拟器速度 321 9.83.1、模拟器 “尚未注册网络” 322 9.84、EMULATOR命令行参数 322 9.85、如何进行单元测试 323 9.86、ANDROID自动化测试初探 324 9.86.1、捕获Activity上的Element 324 9.86.2、Hierarchyviewer 捕获Element的 328 9.86.3、架构实现 330 9.86.4、模拟键盘鼠标事件(Socket+Instrumentation实现) 332 9.86.5、再述模拟键盘鼠标事件(adb shell 实现) 334 9.87、反编译APK 344 9.88、更换APK图标(签名打包) 348 9.89、利用ANDROID MARKET赚钱 363 9.90、ANDROID-MARKET 使用 365 9.91、传感器 369 9.91.1、获取手机上的传感器 369 9.91.2、 371 9.92、时间类 372 * 获得日期或时间字符串 372 * num天前的日期 373 * num天后的日期 373 * 判断 thingdate 的 dotime 天后是否在今天之后 374 * 判断testDate+testTime是否在两个时间之内 375 附录: 378 附录1、XML布局中的常用属性 378 1.通用属性 378 2.Edit Text部分属性 381 3.layout_alignParentRight android:paddingRight 384 附录2、INTENT ACTION 385 附录3、ANDROID的动作、广播、类别等标志 387 ★★★附带工具包说明 393 1.APK反编译工具.rar 393 2.APK安装工具.rar 393
Excel2007图表完全剖析 6/8 Excel2007 图表 完全剖析 OFFICE2007 完整清晰版 PDF ,有目录。共 150MB,分为8个分卷 原价:45.00元 作者:杰莱 出版社:人民邮电出版社 出版日期:2008年2月1日 ISBN:9787115171955 页码:354 -------------------------------------------------------------------------------- 内容提要  在Excel 2007中,Microsoft重写了15年来未曾更新的图表引擎,但如果选择的图表类型不正确,将无助于传递要表达的信息。鉴于此,本书将介绍Excel 2007中全新的图表制作界面,更重要的是,将引导读者选择正确的图表类型并创建引人入胜的图表。通过阅读本书,读者将迅速创建出让观众发出惊叹的图表,并有效地表达信息。   全书分为14章和一个附录,包括如下内容:学习使用Excel 2007图表制作界面,掌握使用图形有效地表示数据的方式,根据要传达的信息选择正确的图表类型,学习可节省时间的解决方案,创建大多数人认为使用Excel无法创建的图表,使用数据透视图汇总数百万行数据,在不使用图表的情况下以图形方式显示数据,使用SmartArt图形绘制流程图和关系图,使用VBA创建图表,将数据绘制到地图中,将图表导出到网页或PowerPoint中,找出图表背后的谎言等。   本书语言简明清晰,内容实用,实例丰富,适合需要使用Excel制作图表的人员阅读。 第1章 Excel 2007图表简介 1 1.1 Excel 2007中的新图表特性 1 1.2 新的图表工具和菜单 2 1.2.1 使用“插入”选项卡来插入图表 3 1.2.2 使用“展开”图标来访问所有图表类型图库 3 1.2.3 理解图表缩略图图标 4 1.2.4 使用图库控件 6 1.3 创建图表 7 1.3.1 选择连续的数据到图表中 7 1.3.2 选择非连续的数据到图表中 7 1.3.3 使用“插入选项卡”图标创建图表 8 1.3.4 使用一次击键创建图表 9 1.4 使用图表 9 1.4.1 在当前工作表中移动图表 9 1.4.2 反转图表的系列(series)与类别(category) 11 1.4.3 使用“选择数据”来改变数据顺序 12 1.4.4 将左上角单元格留空 13 1.4.5 将图表移到另一个工作表中 14 1.5 使用“设计”选项卡自定义图表 15 1.5.1 选择图表布局 16 1.5.2 选择颜色方案 16 1.5.3 通过改变主题来修改颜色方案 17 1.6 创建自己的主题 18 1.6.1 从已有的主题中选择自定义主题的效果 18 1.6.2 理解RGB颜色码 19 1.6.3 将十六进制转换为RGB 20 1.6.4 查找互补色 20 1.6.5 指定主题的颜色 21 1.6.6 指定主题的字体 22 1.6.7 保存自定义的主题 22 1.6.8 在新文档中使用自定义的主题 23 1.6.9 与他人共享主题 23 1.7 下一步 24 第2章 定制图表 25 2.1 使用设置元素格式的工具 25 2.2 识别图表元素 26 2.2.1 图表标签与坐标轴 26 2.2.2 三维图表中的特殊元素 27 2.2.3 分析元素 28 2.3 设置图表元素格式 29 2.3.1 设置图表标题格式 29 2.3.2 设置坐标轴标题格式 31 2.3.3 设置图例格式 32 2.3.4 在图表中添加数据标签 34 2.3.5 在图表中添加数据表 36 2.3.6 设置坐标轴格式 37 2.3.7 网格线的显示与格式设置 43 2.3.8 设置绘图区格式 45 2.3.9 设置三维图表中的背景墙与基底的格式 48 2.3.10 控制三维图表的三维旋转 49 2.3.11 使用趋势线进行预测 51 2.3.12 在折线图或面积图中添加垂直线 53 2.3.13 添加涨/跌柱线到图表中 54 2.3.14 使用误差线显示可接受的偏差 55 2.4 设置数据系列的格式 55 2.5 使用“格式”选项卡 56 2.5.1 将文本转换为艺术字 56 2.5.2 使用形状样式图库 57 2.5.3 使用形状填充与形状效果 57 2.5.4 使用预设形状效果 58 2.6 使用剪贴画或形状替换数据标记 59 2.6.1 使用剪贴画作为数据标记 59 2.6.2 使用形状替换数据标记 60 2.7 下一步 61 第3章 创建显示趋势的图表 62 3.1 选择图表类型 62 3.2 理解基于日期的坐标轴与基于类别的坐标轴 65 3.2.1 将文本日期转换为日期 66 3.2.2 不被识别为日期的日期:数字年份 71 3.2.3 不被识别为日期的日期:1900年之前的日期 72 3.2.4 使用其他方法显示使用时间刻度的坐标轴 76 3.2.5 将日期转换为文本以添加装饰性图表元素 78 3.3 使用图表进行有效交流 81 3.3.1 使用有意义的长标题解释图表的含义 82 3.3.2 突出一列 85 3.3.3 用箭头取代柱形 86 3.3.4 添加另一个序列来突出图表的一部分 87 3.3.5 中途改变折线类型 88 3.4 在图表中添加自动趋势线 89 3.5 显示月销量及当年累积销量的趋势 90 3.6 理解堆积柱形图的缺点 91 3.7 在单个图表中显示很多趋势线的缺点 93 3.8 使用散点图显示趋势 94 3.9 下一步 95 第4章 创建显示差异的图表 96 4.1 比较实体 96 4.2 使用条形图比较数据项 96 4.2.1 增加另一列来显示时间的比较 98 4.2.2 分割条形以突出组分 99 4.3 比较组分 100 4.3.1 使用饼图 101 4.3.2 切换到百分比堆积柱形图 106 4.3.3 使用圆环图来比较两个饼图 107 4.3.4 处理饼图中的数据表示问题 108 4.4 使用瀑布图(waterfall)分解组分 114 4.5 下一步 116 第5章 创建显示关系的图表 117 5.1 在图表中比较两个变量 117 5.2 使用XY散点图绘制成对的数据点 118 5.2.1 在散点图中添加趋势线 118 5.2.2 在散点图中添加标签 120 5.2.3 用折线连接散点图中的点 121 5.2.4 在散点图中添加第二个系列 122 5.2.5 用散点图画图 123 5.3 使用图表来显示关系 123 5.3.1 使用散点图来测试相关性 124 5.3.2 使用成对的条形图来显示关系 126 5.3.3 使用成对的匹配图表 132 5.3.4 使用气泡图添加第三维 135 5.3.5 使用频数分布将成千上万的点分类 136 5.3.6 使用雷达图评估绩效 138 5.3.7 来自Gene Zelazny的一个图表 142 5.4 使用曲面图 145 5.4.1 使用竖坐标轴 146 5.4.2 通过三维旋转控制曲面图 146 5.5 下一步 147 第6章 创建股票分析图 148 6.1 股价图概述 148 6.1.1 折线图 148 6.1.2 OHLC图 149 6.1.3 烛柱(candlestick)图 149 6.2 获取股价数据 150 6.2.1 重排下载数据中的列 151 6.2.2 使用“调整后的收盘价”列来处理分股 151 6.3 创建折线图来显示收盘价 153 6.4 创建OHLC图 156 6.4.1 创建盘高-盘低-收盘图 156 6.4.2 创建OHLC图 159 6.4.3 在盘高-盘低-收盘图表中添加成交量 161 6.5 创建烛柱图 165 6.5.1 改变烛柱图的颜色 166 6.5.2 在烛柱图中添加成交量 166 6.5.3 手工创建包含成交量的烛柱图 167 6.6 使用Web连接创建实时图表 171 6.7 创建用于Dashboard的小图表 174 6.8 下一步 175 第7章 高级图表技巧 176 7.1 高级图表技巧工具箱 176 7.1.1 在单个图表中使用两种图表类型 176 7.1.2 将图表从一个工作表移到另一个工作表 177 7.1.3 使用形状来注释图表 178 7.1.4 使柱形与条形悬浮 180 7.1.5 使用虚构的xy系列给纵坐标轴加上标签 182 7.1.6 使用虚构的XY系列将几个图表显示在单个图表中 187 7.1.7 使用多个XY系列创建网格图(trellis chart) 191 7.2 创建动态图表 195 7.2.1 使用OFFSET函数指定特定区域 195 7.2.2 使用VLOOKUP或MATCH在表格中查找值 196 7.2.3 结合使用INDEX和MATCH函数 198 7.2.4 使用“有效性”下拉列表创建动态图表 199 7.2.5 在图表中使用动态区域 201 7.2.6 创建滚动图表 204 7.2.7 修改滚动条示例显示最近12个月 206 7.3 创建高级图表 206 7.3.1 温度计图表 206 7.3.2 基准图 207 7.3.3 增量图(delta chart) 208 7.4 使用Excel创建奇妙的图表 209 7.5 下一步 211 第8章 创建和使用数据透视图 212 8.1 Excel 2007数据透视表的新特性 212 8.2 决定先使用哪一个:表格还是图表 213 8.3 准备底层透视数据的规则 213 8.4 创建第一个数据透视图 214 8.4.1 更改图表类型及设置图表格式 216 8.4.2 在数据透视图中添加系列 216 8.5 通过数据透视表执行高级操作 217 8.6 筛选数据透视表 219 8.6.1 使用“报表筛选”进行筛选 219 8.6.2 将Excel 2007筛选条件用于轴字段和图例字段 220 8.7 为每个顾客创建图表 221 8.8 下一步 223 第9章 不使用图表的数据可视化表示法 224 9.1 在工作表单元格中创建图表 224 9.2 使用数据条创建单元格内的条形图 225 9.2.1 定制数据条 225 9.2.2 控制最小/最大数据条的长度 226 9.2.3 在部分单元格中显示数据条 228 9.3 使用色阶来突出极值 230 9.3.1 转换为单色数据条 230 9.3.2 排除色阶问题 231 9.4 使用图标集区分数据 232 9.4.1 建立图标集 232 9.4.2 让数字靠近图标 233 9.5 使用条件格式在工作表单元格中创建图表 234 9.6 使用REPT函数创建图表 237 9.7 使用滚动条控件创建图表 238 9.8 创建“茎叶”图表 240 9.8.1 创建将X作为叶的“茎叶”图表 241 9.8.2 使用长公式创建以数字作为叶的“茎叶”图表 242 9.8.3 使用排序和公式创建以数字作为叶的“茎叶”图表 243 9.9 下一步 244 第10章 使用Microsoft MapPoint将Excel 数据显示在地图中 245 10.1 绘制地理数据 245 10.2 在Excel中创建地图 246 10.3 在地图上使用图表 249 10.4 使用其他地图样式来显示数据 251 10.5 下一步 253 第11章 使用SmartArt图形和形状 254 11.1 理解SmartArt图形和形状 254 11.2 使用SmartArt 255 11.2.1 大多数SmartArt都有的元素 256 11.2.2 SmartArt类别简介 256 11.2.3 插入SmartArt 257 11.2.4 对SmartArt元素进行微观控制 260 11.2.5 在文本窗格中控制SmartArt形状 262 11.2.6 添加图像到SmartArt中 264 11.2.7 使用组织图时需要特别考虑的因素 265 11.2.8 使用受限制的SmartArt 267 11.3 为信息选择正确的布局 268 11.4 探索使用SmartArt图形的商业图表 268 11.4.1 使用“平衡”图来显示正/反决策 269 11.4.2 使用“向上箭头”来显示增长 269 11.4.3 使用“基本循环”布局显示重复的过程 269 11.4.4 使用“分离射线”图示显示公司与外部实体的关系 270 11.4.5 使用“表格列表”图示显示公司的部门 270 11.4.6 调整维恩图来显示关系 271 11.4.7 理解“标记的层次结构”图 272 11.4.8 使用其他SmartArt布局 273 11.5 使用形状显示单元格内容 273 11.5.1 处理形状 274 11.5.2 使用“任意多边形”形状创建自定义形状 275 11.6 使用艺术字显示有趣的标题 275 11.7 下一步 278 第12章 导出图表以便在 Excel外部使用 279 12.1 在PowerPoint或Word中显示Excel图表 279 12.1.1 将图表复制为链接到原工作簿链接的动态图表 280 12.1.2 将图表复制为与原工作簿拷贝链接的动态图表 281 12.1.3 将图表复制为图形 282 12.1.4 将图表粘贴为链接对象 283 12.1.5 在PowerPoint中创建图表,从Excel中复制数据 284 12.2 在网上展示图表 285 12.3 将图表导出为图形 286 12.3.1 使用VBA将图表导出为图像 286 12.3.2 使用Snag-it或OneNote捕获图表 286 12.3.3 将XPS转换为PDF 287 12.4 下一步 287 第13章 使用VBA创建图表 288 13.1 VBA简介 288 13.1.1 在Excel中启用VBA 289 13.1.2 在Excel中“开发工具”选项卡 289 13.1.3 Visual Basic编辑器 289 13.1.4 Visual Basic工具 290 13.1.5 宏录制器 291 13.1.6 理解面向对象的代码 291 13.2 学习VBA编程技巧 291 13.2.1 编写代码来处理任意大小的数据区域 292 13.2.2 使用超级变量(super-variable):对象变量 293 13.2.3 在引用对象时使用With和End With 294 13.2.4 续行 294 13.2.5 在代码中添加注释 294 13.3 针对Excel 2007的新图表特性进行编程 295 13.4 在VBA代码中引用图表和图表对象 295 13.5 创建图表 296 13.5.1 指定图表的大小和位置 296 13.5.2 引用特定的图表 297 13.6 录制“布局”和“设计”选项卡中的命令 299 13.6.1 指定内置的图表类型 299 13.6.2 指定模板图表类型 301 13.6.3 更改图表的布局或样式 301 13.7 使用SetElement模拟“布局”选项卡中的设置 303 13.8 使用VBA修改图表标题 308 13.9 模拟“格式”选项卡中的设置 308 13.10 自动化“设置数据系列格式”对话框中的设置 322 13.10.1 控制柱形图和条形图的系列间距和类别间距 323 13.10.2 将系列移到次要坐标轴上 324 13.10.3 旋转和分离圆形图表 325 13.10.4 控制复合饼图和复合条饼图 327 13.10.5 控制雷达图和曲面图 332 13.11 使用“监视”窗口查看对象的设置 333 13.12 将图表导出为图形 335 13.13 创建数据透视图 337 13.14 下一步 341 第14章 找出图表背后的谎言 342 14.1 使用透视进行欺骗 342 14.2 使用缩小的图表进行欺骗 343 14.3 使用刻度进行欺骗 344 14.4 由于Excel不配合导致的欺骗 344 14.5 通过模糊数据进行欺骗 345 14.6 有意使用图表进行欺骗 346 14.7 下一步 348 附录A 图表资源 349 A.1 其他图表资源 349 A.2 Gene Zelazny:商业图表制作大师 349 A.3 PowerFramework.com 349 A.4 Edward Tufte的书籍 350 A.5 图表制作教程网站 351 A.6 交互式培训 351 A.7 现场培训 352 A.8 有关图表制作的博客 352 A.9 视觉设计书店 352 A.10 专业图表设计师 353 A.11 图表制作工具和产品 353
没有最全,只有更全!!! world版全面开放 0、ANDROID常用类库说明 6 1、ANDROID文件系统与应用程序架构 7 1.1、ANDROID 文件系统 7 1.2、ANDROID应用程序架构 9 2、ANDROID应用程序结构 11 2.1、ACTIVITY 12 2.1.1、概述 12 2.1.2、Activity的生命周期 15 2.1.3、Activity 的创建 16 2.1.4、Activity 的跳转(含Bundle传值) 17 2.1.5.Actvity 堆栈 18 2.1.6、Intent对象调用Activity实例 19 2.1.7、Activity透明 21 2.1.8、一次性关闭所有的Activity 22 2.1.9、PreferenceActivity 用法 22 2.1.10、Dialog风格的Activity 23 2.1.11、横竖屏切换不销毁当前Activity 23 2.2、INTENT RECEIVER 25 2.3、SERVICE 26 2.3.1、什么是Service 26 2.3.2、如何使用Service 27 2.3.3、Service的生命周期 32 2.3.4、判断服务开启状态 33 2.3.5、获取启动的服务 34 2.4、CONTENT PROVIDER 35 3、ANDROID UI LAYOUT 35 3.1、概述 35 3.2、线性布局(LINEAR LAYOUT) 36 3.3、相对布局(RELATIVE LAYOUT) 39 3.4、TABLELAYOUT 40 3.5、ABSOLUTELAYOUT 47 4、ANDROID UI 控件 48 4.1、IMAGEBUTTON 48 4.1.1、图案填充问题 48 4.2、TEXTVIEW 49 4.2.1、动态滚动 49 4.3、EDITTEXT 49 4.3.1、光标选择 49 4.4、TITLEBAR 50 4.4.1、非全屏状态下不显示title标题栏 50 4.4.2、标题栏进度指示器 50 4.4.3、titleBar 高级实现方法(更美观) 51 4.4.4、获取标题栏和状态栏高度 57 4.4.5、标题栏显示简单的进度框 57 4.5、MENU 58 4.5.1、简单的代码 58 4.5.2、menu实现的两种方法 58 4.5.3、自定义MENU背景 62 4.5.4、触发menu 64 4.5.5、Context Menu和Options Menu菜单的区别 64 4.5.6、Context menus for expandable lists 64 4.6、LISTVIEW 66 4.6.1、ListView自定义分割线 66 4.6.2、LIST例一 66 4.6.3、LIST例二 76 4.6.4、LIST例三 80 4.6.5、ListView 被选中item的背景颜色 82 4.6.6、ListView自定义背景颜色 83 4.6.7、List长按与短按消息映射 84 4.6.8、点击ListView改变背景色 87 4.6.9、自动滚动ListView 88 4.6.10、BaseExpandableListAdapter例 88 4.6.11、列表视图(List View) 96 4.6.12、NoteList 99 4.7、TAB与TABHOST 106 4.8、RATINGBAR 110 4.8.1、例一 110 4.8.2、例二 112 4.9、DATE/TIME SET 115 4.9.1、DatePicker/TimePicker 115 4.9.2、DatePickerDialog/TimePickerDialog 119 4.10、WEBVIEW 120 4.10.1、WebView的使用 120 4.11、SCROLLVIEW 121 4.11.1、ScrollView的使用 121 4.12、GRIDVIEW 124 4.12.1、GridView的使用 124 4.13、GAMEVIEW 127 4.13.1、显示到一个布局中 127 4.14、TOASTE 128 4.14.1、短时间显示 128 4.14.2、长时间显示 128 4.15、对话框 128 4.15.1、简单的对话框: 128 4.15.2、包含两个按钮的对话框 128 4.15.3、三个按钮的提示框 129 4.15.4、包含输入的dlg 131 4.15.5、圆形进度框 133 4.15.6、AlertDialog.Builder 133 4.15.7、模式对话框 134 4.16、拖动BUTTON获得位置 135 5、ANDROID UI 美化 137 5.1、简单美化BUTTON、IMAGEBUTTON、TEXTVIEW等控件 137 5.2、BUTTON美化案例☆ 139 5.3、IMAGEBUTTON 按下时的动画效果 142 5.4、滚动条显示与隐藏 143 5.5、LISTVIEW 与 SCROLLVIEW 解决办法 144 方法一:(重写ListView) 144 方法二: 150 5.6、3D魔方 151 6、ANDROID UI 动画 160 6.1、四种2D动画 160 6.1.1、透明度控制动画效果 alpha 160 6.1.2、旋转动画效果 rotate 161 6.1.3、尺寸伸缩动画效果 scale 162 6.1.4、位置转移动画效果 translate 163 6.1.5、四种动画效果的调用 164 7、异步调用 167 开辟一个线程: 167 THREAD: 168 HANDER 170 TIMER 173 ANDROID 界面刷新 174 MESSAGE HANDER 175 用法: 175 线程与子线程调用MessageHander 177 Messagehandler实例 177 8、数据存储与读取 179 1. PREFERENCES 179 2. FILES 180 3. DATABASES 180 4. NETWORK 183 5、CONTENTPROVIDER 183 6、执行SQL语句进行查询 188 用法1 188 其它: 188 详解: 189 查看SQLITE表格内容 192 9、常用功能的实现 193 9.1、获取手机型号以及系统版本号 193 9.2、更改应用程序图标 194 9.3、迎合不同的手机分辨率 194 9.4.ANDROID屏幕适应的四个原则 195 9.5、ANDROID常用单位 196 9.6、取得屏幕信息 197 9.7、横竖屏 197 9.8、程序完全全屏 200 9.8.1锁屏锁键盘 200 9.9、程序的开机启动 201 9.10、动态START页面 208 9.11、彻底退出当前程序 212 9.12、获取应用程序的名称,包名,版本号和图标 212 9.13、调用ANDROID INSTALLER 安装和卸载程序 215 9.14、后台监控应用程序包的安装&卸载 216 9.15、显示应用详细列表 224 9.16、寻找应用 224 9.17、注册一个BROADCASTRECEIVER 225 9.18、打开另一程序 225 9.19、播放默认铃声 225 9.20、设置默认来电铃声 226 9.21、位图旋转 227 9.22、手机震动控制 228 9.23、SENSOR2D感应实例 228 9.24、运用JAVA MAIL包实现发GMAIL邮件 230 9.26、ANDROID键盘响应 236 9.27、后台监听某个按键 238 9.28、VECTOR用法 239 9.29、CURSOR 242 9.30、把一个字符串写进文件 244 9.31、把文件内容读出到一个字符串 245 9.32、扫描WIFI热点演示实例教程 246 9.33、调用GOOGLE搜索 249 9.34、调用浏览器 载入某网址 249 9.35、获取 IP地址 249 9.36、从输入流中获取数据并以字节数组返回 250 9.37、通过ANDROID 客户端上传数据到服务器 251 9.38、文件下载类 255 9.39、下载文件的进度条提示 263 9.40、通过HTTPCLIENT从指定SERVER获取数据 265 9.41、通过FTP传输文件,关闭UI获得返回码 266 9.42、激活JAVASCRIPT打开内部链接 266 9.43、清空手机COOKIES 267 9.44、检查SD卡是否存在并且可以写入 267 9.45、获取SD卡的路径和存储空间 268 9.46、将程序安装到SD卡 268 9.47、创建一个SD映像 269 9.48、查看手机内存存储 269 9.49、在模拟器上调试GOOGLE MAPS 271 9.50、建立GPRS连接 273 9.51、获取手机位置 274 9.5* 获得经纬度,地名标注在地图上 274 9.52、获得两个GPS坐标之间的距离 276 9.53、通过经纬度显示地图 277 9.54、路径规划 277 9.55、将坐标传递到GOOGLE MAP并显示 277 9.56、获取本机电话号码 280 9.57、获得手机联系人 280 9.58、2.0以上版本查询联系人详细信息 282 9.59、2.0以上版本添加联系人 285 9.60、拨打电话 287 9.61、发送SMS、MMS 287 9.62、监听电话被呼叫状态 288 9.63、监听要拨打的电话(可以后台进行修改号码) 290 9.64、后台监听短信内容 291 9.65、删除最近收到的一条短信 292 9.66、调用发短信的程序 293 9.67、后台发送短信 293 9.68、调用发送彩信程序 294 9.69、发送EMAIL 294 9.70、播放多媒体 295 9.71、控制音量 296 9.72、定义CONTENTOBSERVER,监听某个数据表 302 9.73、打开照相机 303 9.74、从GALLERY选取图片 303 9.75、打开录音机 303 9.76、语音朗读 303 9.77、手机获取视频流显示在电脑上 305 9.78、蓝牙的使用 313 9.79、一个很好的加密解密字符串 316 9.80、DRAWABLE、BITMAP、BYTE[]之间的转换 318 9.81、高循环效率的代码 320 9.82、给模拟器打电话发短信 321 9.83、加快模拟器速度 321 9.83.1、模拟器 “尚未注册网络” 322 9.84、EMULATOR命令行参数 322 9.85、如何进行单元测试 323 9.86、ANDROID自动化测试初探 324 9.86.1、捕获Activity上的Element 324 9.86.2、Hierarchyviewer 捕获Element的 328 9.86.3、架构实现 330 9.86.4、模拟键盘鼠标事件(Socket+Instrumentation实现) 332 9.86.5、再述模拟键盘鼠标事件(adb shell 实现) 334 9.87、反编译APK 344 9.88、更换APK图标(签名打包) 348 9.89、利用ANDROID MARKET赚钱 363 9.90、ANDROID-MARKET 使用 365 9.91、传感器 369 9.91.1、获取手机上的传感器 369 9.91.2、 371 9.92、时间类 372 * 获得日期或时间字符串 372 * num天前的日期 373 * num天后的日期 373 * 判断 thingdate 的 dotime 天后是否在今天之后 374 * 判断testDate+testTime是否在两个时间之内 375 附录: 378 附录1、XML布局中的常用属性 378 1.通用属性 378 2.Edit Text部分属性 381 3.layout_alignParentRight android:paddingRight 384 附录2、INTENT ACTION 385 附录3、ANDROID的动作、广播、类别等标志 387 ★★★附带工具包说明 393 1.APK反编译工具.rar 393 2.APK安装工具.rar 393
Element table是Element UI框架中的表格组件,可以用于展示数据和进行数据操作。在Element table中,如果数据量较大,会出现表格内容超出表格容器大小的情况,这时就需要使用滚动条来控制表格的显示。滚动条位置Element table中是一个重要的属性,可以决定表格中哪部分数据会被展示出来。 Element table中的滚动条位置可以通过设置属性来实现,具体包括固定表头、固定列和固定表头和列。固定表头表示表格的表头部分会固定在表格容器的顶部,当滚动表格内容时,表头始终可见,方便用户查看表头信息。固定列表示表格的某些列会固定在表格容器的左侧,当滚动表格内容时,这些列始终可见,方便用户查看关键信息。固定表头和列表示表格的表头和某些列都会固定在表格容器的左上角,当滚动表格内容时,这些部分始终可见,方便用户查看和比对数据信息。 滚动条位置Element table中的设置非常灵活,可以根据具体的需求进行配置。例如,如果数据量比较大,但是有一些列是比较关键的数据,则可以将这些列固定在表格的左侧,方便用户观察。如果表格中的数据需要进行排序、筛选等操作,则可以将表头固定在顶部,避免表头和内容滚动时出现错位。 总之,Element table中的滚动条位置对于表格的展示和使用非常重要,可以提高用户的体验和效率。在进行具体的设置时,需要根据实际需求进行判断和决策,才能达到最好的效果。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值