使用CSS打印页面的不同部分
Print different part of a page using CSS
我在这里有以下示例(简单)HTML文件http://jsfiddle.net/WhupP/2/该页面包括header
, left-column
, righ-column
和footer
四个主要区域。此外,它还包括2个@media
元素screen
和print
。
当我打印页面时,@media screen{…} styles只接收调用并打印整个页面。我知道如果我想打印除right-column
以外的所有区域,我就把.noprint {display:none;}
添加到right-column
我想知道的是,我可以只用CSS打印1或2个区域吗?如果这是不可能的,它需要JS,什么是最小的JS代码来完成这项工作?
例如,当我打印页面(ctrl+p或command+p)时,我只想打印区域2和3。下次我想只打印2,再一次我想只打印4
在执行打印操作之前,您必须使用jQuery为您想要显示的项目设置一个类,例如.visiblePrint
并每次切换。
你也可以捕获打印请求,如果你喜欢:http://tjvantoll.com/2012/06/15/detecting-print-requests-with-javascript/
一个例子:
<script type="text/javascript">
$( document ).ready(function() {
printMode = 1;
var beforePrint = function() {
(printMode==3) ? printMode = 1 : printMode++;
console.log('Functionality to run before printing.');
};
var afterPrint = function() {
$('div').removeClass('visiblePrint');
switch(printMode) {
case 1:
$('#print1').addClass('visiblePrint');
break;
case 2:
$('#print2').addClass('visiblePrint');
break;
case 3:
$('#print3').addClass('visiblePrint');
break;
}
console.log('Functionality to run after printing');
};
if (window.matchMedia) {
var mediaQueryList = window.matchMedia('print');
mediaQueryList.addListener(function(mql) {
if (mql.matches) {
beforePrint();
} else {
afterPrint();
}
});
}
$(window).on('beforeprint', beforePrint);
$(window).on('afterprint', afterPrint);
/*window.onbeforeprint = beforePrint;
window.onafterprint = afterPrint;*/
}());
</script>
<style type="text/css" media="print">
div {
display:none;
}
.visiblePrint {
display: block;
}
</style>
</head>
<body>
<div id="print1">Messaggio di stampa 1</div>
<div id="print2">Secondo messaggio di stampa</div>
<div id="print3">Viva la mamma</div>
</body>
不幸的是,它的不是跨浏览器,在chrome中引发2个事件的时间,在firefox中不引发事件…
相关文章:
- CSS-如何定位内容数据标题
- 窗口大小html css
- 如果文本字段为空,则使用JavaScript应用CSS样式
- 动画.CSS重播
- 有没有一种方法可以防止img get请求使用css或js发生
- CSS表格:从列平移到整个表格宽度
- CKEditor-我在editor.css中的风格是't
- 单击更改图标并通过javascript添加一个css类
- 将CSS应用于printWindow.print();在Javascript中
- 使用CSS或js,使用动态选择器选择任意li的下一个元素
- CSS-若窗口太小,滚动条会出现在“表格”单元格上
- css(或jQuery)悬停时淡入淡出
- 为什么不'在JQuery中找到第二个css选择器的工作
- 为什么 .focus() 不起作用,而 .css(“color”,“red”) 在同一个选择器上起作用
- 如何使用css动画/javascript使具有背景图像的元素出现
- JavaScript 速记数学在同一行上定义 CSS 值
- 在CSS中将同一行上的两个选择框相等地分隔开
- 在渲染客户端(同构)之前应用css
- CSS浮动在同一行可变数量
- 在同构React组件中导入CSS文件