README
Advanced Ellipsis
It provides advanced ellipsis capabilities when the content box is small and only a part of the content needs to be shown, and part of the content is important.
Usage
Module usage without npm
npm i advanced-ellipsis
import AdvancedEllipsis from 'advanced-ellipsis';
const advancedEllipsis = new AdvancedEllipsis();
advancedEllipsis.start();
Module usage with CDN
<script type="module">
import AdvancedEllipsis from 'https://cdn.jsdelivr.net/npm/advanced-ellipsis/dist/advanced-ellipsis.esm.js';
const advancedEllipsis = new AdvancedEllipsis();
advancedEllipsis.start();
</script>
<script> tag Usage with CDN
<script src="https://cdn.jsdelivr.net/npm/advanced-ellipsis/dist/advanced-ellipsis.js"></script>
<script>
var advancedEllipsis;
window.onload = function () {
advancedEllipsis = new AdvancedEllipsis();
advancedEllipsis.start();
};
</script>
Demo
https://chae-sumin.github.io/advanced-ellipsis/
Methods
constructor
const advancedEllipsis = new AdvancedEllipsis($selector);
or
const advancedEllipsis = new AdvancedEllipsis($options);
or
const advancedEllipsis = new AdvancedEllipsis($options, $selector);
// $selector is a string
// $options is an object
If $selector
is not entered, '[data-ellipsis]'
is set as the default.
Methods
|Methods|Description|Parameter|return|
|-|-|-|-|
|start
|Set ellipsis according to the set $options
and $attributes
.$status
becomes true|-|this
|
|destroy
|Restore the ellipsis set through the start()
.$status
becomes false|-|this
|
|restart
|Restart when $status
is start(true).|-|this
|
|Methods|Description|Parameter|Parameter type|return|
|-|-|-|-|-|
|setElements
|Set the element according to the $selector
.
Existing elements are automatically destroy()
|$selector
|string|this
|
|getElements
|Returns the set elements in an array.
Changing the returned array does not change the elements
(it is possible to change the element itself).|-|-|Array<HTMLElement>|
|setOptions
|Set the options according to the $options
.
Calls restart()
when options have changed|$options
|object|this
|
|getOptions
|Calls the set option.
Converting the returned object does not change the options.|-|-|object|
|getOption
|Returns the option value corresponding to $optionKey
|$optionKey
|string|boolean | number | string | object|
|getStatus
|Returns $status
. If it is true, start()
is in operation. If false, it is before start()
or after destroy()
.|-|-|$status
(boolean)|
Options and Attributes
common options
|Option|Description|Type|Default|
|-|-|-|-|
|mutationObserver
|When this value is true and $status
is start(true),
change the set element is detected.
Elements whose changes are detected are reset.|boolean|true|
|defalutStyles
|If the value is true, apply ellipsis by default.
If false, you have to modify the style yourself to ellipsis.defalutStyles
= {
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
}|boolean|true|
|useCloneNode
|If the value is true, use cloneNode to determine ellipsis.
If false, use scrollWidth.|boolean|false|
|showOption
|It gives special effects to ellipsis processed nodes.'static'
: I only apply ellipsis.'flow'
: Text flows sideways when a mouse hover or touch is touched.'flow-auto'
: Text automatically flows sideways.'tooltip'
: Text flows sideways when a mouse hover or touch is touched.|string|'static'|
flow options
When showOption
or data-ellipsis-show-option
is 'flow'
or 'flow-auto'
|Option|Description|Type|Unit|Default|
|-|-|-|-|-|
|flowDelay
|The delay time before the text flows.|number|ms|1000|
|flowAfterDelay
|The delay time after text flow is over.|number|ms|1000|
|flowSpeed
|The speed at which the text flows.|number|px / s|50|
|flowPadding
|Add the space at the end as the text flows.|number|px|20|
|flowCount
|The number of flows running after the event occurs.
when the showOption
is 'flow'
.|number|-|1|
|flowCountPre
|The number of flows that are executed as soon as the setting is made.
when the showOption
is 'flow'
.|number|-|0|
|flowAutoCount
|The number of flows when showOption
is 'flow-auto'
.|number|-|Infinity|
tooltip options
When showOption
or data-ellipsis-show-option
is 'tooltip'
|Option|Description|Type|Default|
|-|-|-|-|
|tooltipShowAlways
|Set to true if you want tooltips to appear even in non-ellipsis text.|boolean|false|
|tooltipClass
|The class applied to the tooltip that is created.
(Strings separated by spacebars)|string|'ellipsis_tooltip_box'|
|tooltipDuration
|The time when the tool tip is maintained. (unit: ms)|number|Default|
|customTooltipStyles
|Apply custom style to tool tip.|object|{ }|
attributes
If the element has the following prop, overwrite the options.
example:
<div data-ellipsis data-ellipsis-show-option="flow-auto">ellipsis text...</div>
Attributes | Description |
---|---|
data-show-option |
overwrite showOption |
data-flow-count |
overwrite both flowCount and flowAutoCount |
data-flow-count-pre |
overwrite flowCountPre |
data-tooltip-show-always |
overwrite tooltipShowAlways |
data-tooltip-id |
The class applied to the tooltip that is created. |
data-tooltip-class |
The id applied to the tooltip that is created. (Strings separated by spacebars) |
Description
- Elements only apply if they have only one text note as a child.
- when
showOption
is'flow'
,'flow-auto'
or'tooltip'
,
it detectsmouseover
ortouchstart
and operates. - The default value of elements is
'[data-ellipsis]'
. - Always follow the priority below
Options
Tooltip Element Class
Tooltip Element Styles
!important styles
>customTooltipStyles
>defalutTooltipStyles
>User-entered inline styles
>css styles
customTooltipStyles
anddefalutTooltipStyles
will be overrideUser-entered inline styles
License
Contact
cotnmin@gmail.com