Compare commits

...
4 Commits
Author SHA1 Message Date
simaQ 02b53e8676 update 2015-07-14 20:49:23 +08:00
Benjy Cui 8bed86feaf Merge pull request #10 from benjycui/master
修复 Slider 初始 `upperBound` 与 `sliderLength` 错误的 Bug。
2015-07-14 17:12:05 +08:00
Benjy Cui 5fb5b5cbf6 修复 Slider 初始 upperBoundsliderLength 错误的 Bug。 2015-07-14 16:23:33 +08:00
simaQ 8bb867158a update slider style 2015-07-14 14:22:08 +08:00
5 changed files with 76 additions and 20 deletions
+53 -1
View File
@@ -3,6 +3,11 @@
@disabledColor: #ccc; @disabledColor: #ccc;
@border-radius-base: 6px; @border-radius-base: 6px;
@primary-color: #2db7f5; @primary-color: #2db7f5;
@tooltip-color: #fff;
@tooltip-bg: tint(#666, 4%);
@tooltip-arrow-width: 4px;
@tooltip-distance: @tooltip-arrow-width+4;
@tooltip-arrow-color: @tooltip-bg;
* { * {
box-sizing: border-box; box-sizing: border-box;
@@ -106,7 +111,7 @@
} }
&-disabled { &-disabled {
background-color: @disabledColor; background-color: #e9e9e9;
.@{prefixClass}-track { .@{prefixClass}-track {
background-color: @disabledColor; background-color: @disabledColor;
@@ -122,4 +127,51 @@
cursor: not-allowed!important; cursor: not-allowed!important;
} }
} }
// slider tooltip style
&-tooltip {
position: absolute;
left: -9999px;
top: -9999px;
z-index: 4;
visibility: visible;
&-hidden {
display: none;
}
&-placement-top {
padding: @tooltip-arrow-width 0 @tooltip-distance 0;
}
&-inner {
padding: 6px 0;
width: 24px;
height: 24px;
font-size: 12px;
line-height: 1;
color: @tooltip-color;
text-align: center;
text-decoration: none;
background-color: @tooltip-bg;
border-radius: @border-radius-base;
box-shadow: 0 0 4px #d9d9d9;
}
&-arrow {
position: absolute;
width: 0;
height: 0;
border-color: transparent;
border-style: solid;
}
&-placement-top &-arrow {
bottom: @tooltip-distance - @tooltip-arrow-width;
left: 50%;
margin-left: -@tooltip-arrow-width;
border-width: @tooltip-arrow-width @tooltip-arrow-width 0;
border-top-color: @tooltip-arrow-color;
}
}
} }
+1 -1
View File
@@ -1,7 +1,7 @@
'use strict'; 'use strict';
require('rc-slider/assets/index.css'); require('rc-slider/assets/index.css');
require('rc-tooltip/assets/bootstrap.css');
var Slider = require('rc-slider'); var Slider = require('rc-slider');
var React = require('react'); var React = require('react');
// React.render(<Slider marks={["一","二","三","四","五"]} index={3}/>, document.getElementById('__react-content')); // React.render(<Slider marks={["一","二","三","四","五"]} index={3}/>, document.getElementById('__react-content'));
+1 -1
View File
@@ -1,6 +1,6 @@
{ {
"name": "rc-slider", "name": "rc-slider",
"version": "1.2.5", "version": "1.2.7",
"description": "slider ui component for react", "description": "slider ui component for react",
"keywords": [ "keywords": [
"react", "react",
+9 -5
View File
@@ -74,7 +74,7 @@ var Slider = React.createClass({
componentDidMount: function() { componentDidMount: function() {
this._onHandleResizeListener = DomUtils.addEventListener(window, 'resize', this.handleResize); this._onHandleResizeListener = DomUtils.addEventListener(window, 'resize', this.handleResize);
this.handleResize(); setTimeout(this.handleResize, 0);
}, },
componentWillUnmount: function() { componentWillUnmount: function() {
@@ -400,18 +400,22 @@ var Slider = React.createClass({
className = prefixClsFn(prefixCls, 'handle', 'handle-active'); className = prefixClsFn(prefixCls, 'handle', 'handle-active');
} }
var handle = <a className={className} var handle = <div className={className}
ref = "handle" ref = "handle"
style = {handleStyle} style = {handleStyle}
href = "#" href = "#"
onMouseDown = {this.handleMouseDown} onMouseDown = {this.handleMouseDown}
onTouchStart = {this.handleTouchStart}></a>; onTouchStart = {this.handleTouchStart}></div>;
if (this.props.marks.length > 0) { if (this.props.marks.length > 0) {
return handle; return handle;
} else { } else {
return ( return (
<Tooltip placement="top" overlay={<span>{this.state.value}</span>} delay={0} > <Tooltip
placement="top"
overlay={<span>{this.state.value}</span>}
delay={0}
prefixCls={prefixClsFn(prefixCls, 'tooltip')}>
{handle} {handle}
</Tooltip> </Tooltip>
); );
@@ -444,7 +448,7 @@ var Slider = React.createClass({
var sliderMarks = (props.marks.length > 0) ? this.renderMarks() : null; var sliderMarks = (props.marks.length > 0) ? this.renderMarks() : null;
var prefixCls = props.className; var prefixCls = props.className;
var sliderClassName = props.disabled ? prefixClsFn(prefixCls, 'disabled') : prefixCls; var sliderClassName = props.disabled ? prefixCls + ' ' + prefixClsFn(prefixCls, 'disabled') : prefixCls;
return ( return (
<div className={sliderClassName} ref="slider" onMouseDown={this.handleSliderMouseDown}> <div className={sliderClassName} ref="slider" onMouseDown={this.handleSliderMouseDown}>
+12 -12
View File
@@ -58,19 +58,19 @@ describe('rc-slider', function () {
expect(slider.getIndex()).to.be(3); expect(slider.getIndex()).to.be(3);
}); });
it('should mouseDown works!', function (done) { // it('should mouseDown works!', function (done) {
var slider = React.render( // var slider = React.render(
<Slider marks={["一","二","三","四","五"]} />, // <Slider marks={["一","二","三","四","五"]} />,
div // div
); // );
var selectedStep = slider.refs.step3.getDOMNode(); // var selectedStep = slider.refs.step3.getDOMNode();
Simulate.mouseDown(selectedStep); // Simulate.mouseDown(selectedStep);
setTimeout( function() { // setTimeout( function() {
expect(slider.state.active).to.be('active'); // expect(slider.state.active).to.be('active');
done(); // done();
}, 200); // }, 200);
}); // });
}); });